从HTML注入到CSRF:一次漏洞组合拳实战
前言免责声明:本文仅供安全学习研究,所有测试均在授权环境或自建靶场中进行。严禁用于非法用途,否则后果自负。
HTML注入 + CSRF登出漏洞实战复现
漏洞概述
在某社区平台的评论功能中发现存储型HTML注入漏洞。虽然前端做了输入过滤,且存在WAF防护,但通过逆向前端加密逻辑并构造特殊payload,成功绕过所有防护,注入恶意标签。结合平台存在的GET方式登出接口,实现了点击即登出的CSRF攻击。
先在前端进行注入,发现有waf。
https://pic1.imgdb.cn/item/695478f2027e3931947f53d2.png
WAF规则存在以下缺陷:
<ol>
标签名和点击</a >https://pic1.imgdb.cn/item/695478f2027e3931947f53d3.png
https://pic1.imgdb.cn/item/695478f2027e3931947f53d4.png
但经过浏览器解析,< a 不会被识别为标签。此时已经不想手动继续尝试了,准备写脚本看看到底哪些操作能绕过waf。
通过逐步测试,发现WAF检测规则:
https://www.yijinglab.com/headImg.action?news=d2cf454f-22a0-4c71-9d92-e17dfd1dae8c.jpg
写脚本过程:
https://pic1.imgdb.cn/item/695478f3027e3931947f53d5.png
对发表评论进行抓包,当我想模拟请求的时候发现请求体被加密了,这个时候就需要拿出我的逆向功底了
https://pic1.imgdb.cn/item/695478f3027e3931947f53d6.png
全局搜索sign,打断点发包。
https://pic1.imgdb.cn/item/695478f3027e3931947f53d7.png
【----帮助网安学习,以下所有学习资料免费领!加vx:YJ-2021-1,备注 “博客园” 获取!】
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
关键加密点:
const encrypted = encryptData(content); const sign = generateSign(encrypted, timestamp);content就是我们的评论内容,encrypted就是对我们的评论进行了加密,而sign签名则是将加密后的评论内容加上时间戳进行了二次加密。
https://pic1.imgdb.cn/item/695478f3027e3931947f53d8.png
进入encryptData函数,清晰明了的看到是AES加密,直接套库复现就行。
https://pic1.imgdb.cn/item/695478f4027e3931947f53d9.png
而签名函数则是md5加盐。
https://pic1.imgdb.cn/item/695478f4027e3931947f53da.png
拿加密之后的值去模拟发包,发现error报错了
https://pic1.imgdb.cn/item/695478f4027e3931947f53db.png
原来是没登录
https://pic1.imgdb.cn/item/695478f4027e3931947f53dc.png
携带登录的参数去测试发现换行符可以绕过WAF且浏览器正常解析! 最终绕过payload
https://pic1.imgdb.cn/item/695478f6027e3931947f53dd.png
# 使用换行符绕过(注意:前端输入框无法输入换行符,必须通过脚本发包)payload = '点击领取优惠'脚本发送成功且没有被waf拦截,评论发布后刷新页面,恶意标签被浏览器解析渲染,显示为可点击的超链接,HTML注入成功!
https://pic1.imgdb.cn/item/695478f6027e3931947f53e1.png
点击之后直接重定向到了登出链接
https://pic1.imgdb.cn/item/695478f8027e3931947f53e6.png
https://pic1.imgdb.cn/item/695478f8027e3931947f53e7.png
往回跳一页,一刷新,这个时候就已经登出了,假如用户A正在写文章,同时浏览其他帖子时误点了恶意链接,触发登出。等他切回写作页面点击发布时,才发现session已失效,未保存的内容全部丢失。
https://pic1.imgdb.cn/item/695478f8027e3931947f53e8.png
用户点击后直接登出,实现CSRF攻击。虽然危害不算特别大,但足以证明漏洞的存在。
关键点:
前端输入框里按回车是提交表单,没法输入真正的换行符 \n。所以必须:
[*]先逆向前端加密逻辑
[*]用Python脚本构造包含换行符的payload
[*]自己加密、签名后直接发包
这就是为什么前端过滤 + WAF 都挡不住——攻击者根本不走前端,直接构造请求绕过所有客户端校验。最重要的就是敏感操作(登出、删除、修改)不应使用GET方式,否则容易被CSRF利用。
当时首次提交的时候,是重定向挂马攻击被打回了,第二次结合了敏感操作也是收录了中危一枚。
总结
单个漏洞可能危害有限,但组合起来可能产生更大影响:
[*]HTML注入(低危)+ GET登出(低危)= CSRF攻击(中危)
更多网安技能的在线实操练习,请点击这里>>
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! 懂技术并乐意极积无私分享的人越来越少。珍惜 热心回复! 分享、互助 让互联网精神温暖你我 这个好,看起来很实用 谢谢楼主提供! 这个好,看起来很实用 新版吗?好像是停更了吧。 yyds。多谢分享 感谢,下载保存了 谢谢楼主提供! 不错,里面软件多更新就更好了 谢谢分享,辛苦了 新版吗?好像是停更了吧。 新版吗?好像是停更了吧。 感谢发布原创作品,程序园因你更精彩 感谢分享 前排留名,哈哈哈 这个有用。 感谢发布原创作品,程序园因你更精彩
页:
[1]