Apache Solr任意文件读取和SSRF漏洞的自动化挖掘
漏洞描述
Apache Solr是一个开源的搜索服务,使用Java语言开发。Apache Solr的某些功能存在过滤不严格,在Apache Solr未开启认证的情况下,攻击者可直接构造特定请求开启特定配置,并最终造成SSRF和文件读取漏洞。
综上,存在两个漏洞:任意文件读取和SSRF,同时SSRF也可以导致任意文件读取。
01
|
漏
洞
描
述
漏洞详情
两个漏洞在同一个HTTP请求中触发,分别对应不同的参数,触发漏洞的url为
http://x.x.x.x:8983/solr/new_core/debug/dump?stream.url=file:///etc/passwd¶m=ContentStream&stream.file=/etc/passwd
其中,new_core是solr中core的名称,可通过solr控制面板创建及查看;漏洞分别对应以下两个参数:
-
stream.url触发SSRF漏洞,Java中可利用file协议利用SSRF,可用来实现任意文件读取
-
stream.file参数触发任意文件读取漏洞
02
|
漏
洞
详
情
手工分析
手工分析代码时,一般是看源码,然后debug,效率偏低。手工分析的过程不再赘述,漏洞的核心原因见下面代码:
灵芝IAST(洞态IAST)自动挖掘漏洞
洞态IAST检测该漏洞,需要以下:
• 使用vulhub-cli创建安装灵芝IAST的solr环境(vulhub-cli教程 【地址见文末】)
• 使用浏览器访问solr,触发相关的URL
• 前往洞态IAST的搜索页面,输入漏洞对应的sink方法,搜索漏洞
洞态IAST的结果如下,漏洞实时检测:
04
|
灵芝
IAST
上图中,蓝色的线条代表污点的流向,图中共搜索到两条污点调用链,一条指向java.io.File.<init>方法,另一条指向java.net.URL.openConnection方法;分别对应任意文件读取漏洞和SSRF漏洞;
两个漏洞的污点调用链存在重合不分,下面先分析重合的污点链
1. 寻找污点来源
根据污点调用链找到污点的起始位置:发现在org.apache.solr.servlet.SolrRequestParsers$StandardRequestParser.parseParamsAndFillStreams方法中,调用getQueryString方法获取HTTP参数,拿到初始污点
2. 跟踪污点变化
根据污点调用链跟踪污点的变化:在org.apache.solr.servlet.SolrRequestParsers$StandardRequestParser.parseParamsAndFillStreams方法中,调用parseQueryString方法对污点进行解析,转换为MultiMapSolrParams对象
根据污点调用链跟踪污点的变化:在buildRequestFrom方法中,调用MultiMapSolrParams.getParams方法,获取污点
到此为止,公共污点链结束,接下来是两个漏洞独立的调用链,我们分别分析:
3. SSRF漏洞
继续根据污点调用链跟踪污点的变化:接下来的污点链就清晰了很多,分别是用污点创建URL对象和调用URL对象的openConnection方法触发漏洞,详细的调用链如下:
污点创建URL
URL对象调用openConnection方法触发漏洞
4. 任意文件读取漏洞
任意文件读取的链路与SSRF的链路类似,使用污点创建File对象,然后读取文件内容
更多漏洞,等你来发现
洞态IAST 现提供SaaS版本和开源版本,可自动化挖掘部分0 Day漏洞,可前往查看版本介绍并联系技术支持获取试用。
( https://huoxianclub.github.io/LingZhi/#/doc/deploy/versions)
“洞态IAST”地址:
http://aws.iast.huoxian.cn:8000/
“洞态IAST”使用文档:
https://huoxianclub.github.io/LingZhi/#/doc/tutorial/quickstart
vulhub-cli教程:
https://huoxianclub.github.io/LingZhi/#/doc/deploy/vulns?id=vulhub%e9%9d%b6%e5%9c%ba%e5%bf%ab%e9%80%9f%e5%ae%89%e8%a3%85%e7%81%b5%e8%8a%9diast
END
【火线Zone】
火线Zone是[火线安全平台]运营的封闭式社区,社区成员必须在[火线安全平台]提交有效漏洞才能申请免费加入,符合要求的白帽子可联系[火小表妹]免费加入~
我们不希望出现劣币驱逐良币的结果,我们不希望一个技术社区变成一个水区!
欢迎具备分享精神的白帽子加入火线Zone,共建一个有技术氛围的优质社区!
招 聘
火线招安全研究工程师(代码审计方向)、移动安全工程师,帮助社区白帽子实战自动化/半自动化漏洞挖掘!
扫描二维码 | 关注我们
微信号 : hxanquan
本文始发于微信公众号(火线Zone):Apache Solr任意文件读取和SSRF漏洞的自动化挖掘
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论