看我如何从FUZZ到XSS在SRC官网偷走你的个人信息
0x01 前奏
本文作者 RG@M78sec,感谢团队师傅投稿
前不久在挖掘某 SRC 时提交漏洞时,偶然在该 SRC 官网的编辑器发现了一个接口。
起初以为是任意文件包含能 RCE 了,后来测试发现只是拼接读取了远程资源站的图片,原本都想着放弃了
但是当我在后缀添加了个 + 号后图片被意外的解析成了 HTML 页面,这不就意味着 get 到一个存储型 XSS?
https://xxx.cn/xxxx/ueditor?image_name=/xxx.png+
接着测试发现拼接图片在一个二级目录下,尝试穿越发现存在自研 WAF,于是 Fuzz 了下 Payload 成功 Bypass。
WAF:
Bypass:
Payload:
0x02 漏洞利用
1. 利用 010Editor 或 copy 命令,制作含有恶意代码的图片。
2. 通过本站的文件上传恶意图片,取得文件名(之所以用 png 格式是因为 jpg 会校验是否为正常图片)。
3. 由于该 SRC 官网财务打款需要手机个人信息 (姓名,手机号,sfz 等),而这些信息用户自己是可见的。
我们直接编写了一个 demo.js 用于读取受害者个人信息,将其部署在 XSS 平台。
脚本会通过 Ajax 请求 URL,使用 DOMParser 转换并解析 DOM 对象,提取用户身份证、银行卡、手机号、地址等信息后合并 base64 发送到 XSS 平台,找了团队的几个朋友测试 OK。
4. 构造跳转网站,诱导受害者访问:
这时只要受害者访问该服务,跳转至恶意页面就能获取信息。
成功窃取到受害者的信息,base64 解码即可。
0x03 技术点总结
1.Fuzz 出接口及参数 , 拼接 + 号解析成 HTML 页面。
2.URL 拼接时 BypassWAF 进行目录穿越。
3. 使用 DOMParser 转换为 DOM 对象并提取表单 input 值,后通过 window.btoa 函数 base64 编码字符串。