low csrf
直接诱导url即可绕过
medium csrf
- 添加了refer来进行限制,通过这个来进行身份验证。
- 需要让受害者点击一个连接,因为refer头必须是服务器的地址,所以请求的文件需要放置在服务器中,这个就需要结合其他漏洞进行攻击。
- payload
<img src="http://192.168.153.130/dvwa/vulnerabilities/csrf/?password_new=hack&password_conf=hack&Change=Change#" border="0" style="display:none;"/>
<h1>404<h1>
<h2>file not found.<h2>
High csrf
报文:
- 在添加refer的基础上,又加入了token值。
- 但是仍然可以通过在服务器端添加代码的方式,诱导用户点击来获取cookie值。
-
payload
-
当用户点击时,发生的动作为:
-
访问这个地址,里面的payload。
- 首先访问test.html页面,然后再访问DVWA,从返回包中获取token值,再用token值构建请求,更改密码成功。
文件上传 低
- 一句话木马
- 原理就是远程代码执行,把菜刀输入的指令发送的被攻击方,被攻击方执行运行。
- 把一句话木马<?php eval(@$_GET['a']); ?>写入php脚本文件中,上传。
-
上传成功,还返回了服务器保存路径。
-
需要解释一下这个一句话木马的含义。eval()函数,就是将里面的字符串当做php代码来运行。@$_POST['a']的意思是指把post请求中参数名为a的字符串当做php代码来执行。
-
那么根据上面所解释的一句话木马的意思,就是构造一个请求,请求的url就是在文件上传存储路径下面的,并且再构造一个参数a.
- 问号在这里起到一个连接的作用
文件上传 中
以下是错误思路
-
直接上传木马错误,上传文件类型做限制了
-
将类型名字直接改掉
这里是正确思路:
-
其实需要修改的思路是对的,就是需要修改文件的类型,但是修改错地方了。
-
但是又不太明白图片的表达是什么,可以抓包查看一下成功的上传的数据包,这个时候BP的compare功能也可以用上场了。
-对比正确上传文件,修改请求包之后
文件上传 高
这个时候是直接判断上传的文件的后缀名格式。
是不是想起来了文件解析漏洞~~~
IIS和PHP的,因为我们知道他是PHP的嘛,直接利用Apache文件解析漏洞就可以啦。但是DVWA又限制了上传的文件类型,只有几样文件类型的后缀名才能成功,所以说使用Apache的解析漏洞是不可以成功的。-
那么来尝试一下一句话图片马
-
之后再访问这个url
网上说这样子可以,但是实际上我也不知道情况,应该可以吧。保持怀疑
还是说是图片马和菜刀利用吧
。。。可是我的菜刀用不了,所以没有办法了。还有一个利用方法就是文件上传和文件包含一块利用。
- 上传文件,获取文件上传路径
- 利用文件包含执行这个文件
蚁剑+DVWA+文件上传
https://blog.csdn.net/qq_42342141/article/details/102815402
蚁剑+DVWA+文件上传
- 中国蚁剑是 一 款比菜刀还牛的shell控制端软件
菜刀+DVWA+文件上传
https://www.freebuf.com/articles/web/119467.html
-
菜刀的使用
后面就能连接成功,看到里面的文件。
这个菜刀工作原理就是远程命令执行嘛,跟DVWA里面的文件包含漏洞差不多,就是有个参数你是可以操作的,文件包含的漏洞,那个参数是系统本来自己的,但是菜刀的这个,是你先上传了一个文件上去,里面有个参数可以供我使用。比文件包含的操作多了一步,就是文件上传。
SQL注入 低
- 对于sql注入漏洞,第一步是判断是否存在这个漏洞。
- 第二步是判断这个漏洞是字符型的注入还是数字型的注入。
- 好累哦,其实还不如把它直接放进sqlmap里面跑算了。
-
先不写sql注入了,毕竟sql注入
弱session_id
那么另外一个浏览器,模拟其他的攻击者登录。
需要下载一个postman来改数据包
https://blog.csdn.net/daiqinge/article/details/78320560
但是我的电脑现在不能访问外网妈的,等待建鹏的帮忙哦略略
弱session ID 低等难度
在这个实验里面,其实我还是不太明白
现在描述一下我的操作
-
首先使用admin 的账号去登录DVWA,然后观察session id 的变化
-
在这里插入一下一个我有一点奇怪的地方,就是在重放这个数据包的时候,这个session的值是还是在不 停的增加的,但是重放的session-id 没有任何变化,还是可以返回数据内容,这个是为什么呢,这样子又会有什么影响呢
我觉得就是这样子只能跳转到请求的session值得界面,并且还有这算不算是一个漏洞,因为他的会话一直都存在,不会更改。是不是算是会话固定呢,我觉得算呢!
实际测试方法:
a.不断重放一个实际网页来看数据包
b. 查看这个数据包的页面,是否有变化
c. 不断重放这个数据包,看是否能够请求成功。
还有一个疑问的地方,好像单纯的改session ID 是不可以的,还有cookie的值全部都要改的,这个需要分析一下源码。
-
session id 劫持
然后使用G账号发送A的cookie,看看是否能够成功
所以后面我得到的结论就是,cookie要全部正确才可以,至少说服务端需要验证的参数都要正确才可以,不是说一个session ID 就可以的,他只是其中的一个因素。
至于那个一直在更新的session ID 我到现在还不是很明白,为什么不要对应呢
- 与盗取用户名、密码登陆用户帐户的方式有所不同,Session劫持是一种通过窃取用户的SessionID,使用该SessionID登录目标账户的攻击方法。此时攻击者实际上是使用了目标账户的有效Session。如果SessionID是保存在Cookie中的,则这种攻击可以成为Cookie劫持。
- DVWA在清除了cookie之后,登录页面退出了登录,提醒重新登录。这个更能证明, cookie使用在登录之后,登录之后清除了cookie,那么就会导致登录凭证消失了,就没用咯
学习链接
https://www.freebuf.com/articles/web/131305.html
点进去看啊,所有都是重点!所有都是大佬的笔记。一个会话存在问题的方式也很多的!
https://www.freebuf.com/column/228476.html
服务器生成的用以标识客户信息的cookie一般被称为sessionId,而通过一些手段获取其它用户sessionId的攻击就叫session劫持。
可能意思就是说,session ID 不是只指返回包的那点session ID, 而是包含的整个session ID 的cookie,叫做weak session ID。
XSS dom 低
- DOM型漏洞
DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。
DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。
在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。
- 案例
分析
- 虽然看上去好像只能从里面选择输入的值,但是其实可以通过修改数据包的方式。
-
先从正常请求的数据包中来分析这个请求和返回内容
-
下面是添加了payload
-
把这段返回包复制到浏览器中显示
-
这里的payload是'"<script>alert('xss')</script>,表示是真的非常的低级哈哈哈。其实是可以把payload写得更加有攻击性的,比如获取cookie等等。在csrf漏洞利用中是利用链接来修改密码。也可以用来获取cookie啊等等,payload我不会写,可以在网上查。
源码分析
XSS dom 中
直接使用之前的payload,直接什么都不返回了
查看原码,好像也没有过滤什么东西吧
- 我就想着创造这个样子的payload,来看看行不行
'%22%3Cscript%3Ealert('xss')%3C/script%3E(这个是转换成了url编码)
毕竟这个不是不存在了<script,但是还是不成功
ASCII码转换又不会转换
那就转换成Unicode编码
- 这个可怎么办啊~~~~试试看尝试其他的payload,没有使用的script的
- 事实上好像我一开始就错了咧,还是要好好搞懂代码才可以哦
-
源码分析
- 插入payload
- 因为现在已经把<script给过滤了,所以不能这么使用。可以使用加载图片的方式,如果图片有错则执行xx指令。因为代码的标签的原因,所以也需要闭合标签。<options>和<select>
那么payload则为:</option></select><img src=1 onerror=alert(/xss/)>
加载图片1,出错,就可以执行alert(/xss)
- 代码没有分析清楚
- 有很多闭合也不了解。以为只有' " 这种闭合,其实还有标签的闭合呢。
xss DOM high
-
源码分析
- 但是忽略了一点 可以直接备注掉后面的payload,代码不检测了,但是还是在客户端显示的时候可以执行
所以payload为:
这个时候就可以绕过了
-
xss DOM impossible
- 因为DOM Based XSS 的形成原因比较特别。这是由于客户端脚本自身解析不正确导致的安全问题。
XSS 反射型 low
抓包看一下
这个很明显跟DOM类型的不一样,DOM型可以看到是怎么调用的,因为是在客户端的嘛。但是反射型的这个就不可以。是不是可以闭合<pre>来看是否可以呢
所以这个不是很难
xss DOM medium
被过滤掉了。感觉过滤的操作还是和DOM型的是一样的。
- 还是不太熟练,真的是需要学会闭合,就要学会代码
-
DVWA XSS high
-
DVWA XSS impossible
xss strored low
CSP绕过
CSP(浏览器内容安全策略)
内容安全策略(CSP)是一种web应用技术用于帮助缓解大部分类型的内容注入攻击,包括XSS攻击和数据注入等,这些攻击可实现数据窃取、网站破坏和作为恶意软件分发版本等行为。该策略可让网站管理员指定客户端允许加载的各类可信任资源。
当代网站太容易收到XSS的攻击,CSP就是一个统一有效的防止网站收到XSS攻击的防御方法。CSP是一种白名单策略,当有从非白名单允许的JS脚本出现在页面中,浏览器会阻止脚本的执行。
本来是有个同源策略的,但是同源策略的限制比较多,毕竟有时候还是会加载其他的连接。所以就引用CSP,CSP限定了比较严格的策略和规则,限定外部的资源的加载和执行,即使攻击者发现漏洞,但是他还是没有办法注入脚本
CSP的启用
有两种方式:
-
通过HTTP头信息,content-security-policy的字段
通过网页的<meta>标签
<meta http-equiv="Content-Security-Policy" content="script-src 'self'">
我们在页面引入一个cdn,但是meta的content只设置为script-src 'self'
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta http-equiv="Content-Security-Policy" content="script-src 'self'"/>
<title>Document</title>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>
所以会看到如下结果
- 那么,csp还需要设置其他的url来源,只需要在meta标签上在增加其他url来源就可以了。
<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://cdn.bootcss.com"/>
我们已经看到了script-src如何设置,其实它同样是适用于其他资源的限制
- 除了限制外部脚本连接之外,还有很多可以限制的。比如
- script-src: 外部脚本
- style-src:script-src 版的样式表
- img-src: 用于定义可从中加载图像的来源。
- font-src: 用于指定可提供网页字体的来源
- media-src: 用于限制允许传输视频和音频的来源。
- object-src: 可对 Flash 和其他插件进行控制。
- plugin-types: 用于限制页面可以调用的插件种类。
- child-src: 用于列出适用于工作线程和嵌入的帧内容的网址(框架)
default-src
默认情况下,这些指令的适用范围很广。如果您不为某条指令(例如,font-src)设置具体的政策,则默认情况下,该指令在运行时假定您指定 * 作为有效来源(例如,您可以从任意位置加载字体,没有任何限制)。可以通过指定一个 default-src 指令替换此默认行为.
<meta http-equiv="Content-Security-Policy" content="default-src 'self'"/>
上面代码限制所有的外部资源,都只能从当前域名加载
如果同时设置某个单项限制(比如font-src)和default-src,前者会覆盖后者,即字体文件会采用font-src的值,其他资源依然采用default-src的值。
CSP bypass low
- 首先查看一下源代码
自己看一下吧,我不想写了,因为我不懂
https://www.jianshu.com/p/59b748f0f046
https://www.cnblogs.com/jojo-feed/p/10204588.html
DVWA访问异常 XAMMP
chmod -R 777 /opt/lampp/htdocs/
WEAK SESSION LOW
- low
low 的其实很简单,多发几个数据包,然后进行对比一下就知道了,
cookie劫持:
session劫持:
中等难度是时间戳加密,高等难度是md5加密
但我们获取了cookie值的时候,我们就可以盗用别人的身份了。
cookie值正确之后,我们就可以直接访问需要登录后的被攻击方的页面,进行系列操作。
当用户登录后,在服务器就会创建一个会话(session),叫做会话控制,接着访问页面的时候就不用登录,只需要携带
Sesion去访问。
sessionID作为特定用户访问站点所需要的唯一内容。如果能够计算或轻易猜到该sessionID,则攻击者将可以轻易获取访问权
限,无需录直接进入特定用户界面,进而进行其他操作。
用户访问服务器的时候,在服务器端会创建一个新的会话(Session),会话中会保存用户的状态和相关信息,用于标识用户。
服务器端维护所有在线用户的Session,此时的认证,只需要知道是哪个用户在浏览当前的页面即可。为了告诉服务器应该使
用哪一个Session,浏览器需要把当前用户持有的SessionID告知服务器。用户拿到session id就会加密后保存到 cookies 上,
之后只要cookies随着http请求发送服务器,服务器就知道你是谁了。SessionID一旦在生命周期内被窃取,就等同于账户失窃。
Session利用的实质 :
由于SessionID是用户登录之后才持有的唯一认证凭证,因此黑客不需要再攻击登陆过程(比如密码),就可以轻易获取访问权
限,无需登录密码直接进入特定用户界面, 进而查找其他漏洞如XSS、文件上传等等。
Session劫持 : 就是一种通过窃取用户SessionID,使用该SessionID登录进目标账户的攻击方法,此时攻击者实际上是使用
了目标账户的有效Session。如果SessionID是保存在Cookie中的,则这种攻击可以称为Cookie劫持。SessionID还可以保存
在URL中,作为一个请求的一个参数,但是这种方式的安全性难以经受考验。
session and cookie 劫持 但是还是不懂怎么操作来攻击
https://www.cnblogs.com/phpstudy2015-6/p/6776919.html
使用Postman模拟HTTP请求
https://blog.csdn.net/weixin_30730151/article/details/99138278?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-3