Apache Solr 远程命令执行漏洞(CVE-2019-0193)
漏洞原理与分析可以参考:
Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。此次漏洞出现在Apache Solr的DataImportHandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。它具有一个功能,其中所有的DIH配置都可以通过外部请求的dataConfig参数来设置。由于DIH配置可以包含脚本,因此攻击者可以通过构造危险的请求,从而造成远程命令执行。
本环境测试RCE漏洞。
漏洞复现
命令执行成功后,需要等待一会,之后访问http://192.168.44.132:8983/
即可查看到Apache solr的管理页面,无需登录。
如上图所示,首先打开刚刚创建好的test
核心,选择Dataimport功能并选择debug模式,填入以下POC:
1 | <dataConfig> |
点击Execute with this Confuguration
会发送以下请求包:
1 | POST /solr/test/dataimport?_=1565835261600&indent=on&wt=json HTTP/1.1 |
执行docker-compose exec solr ls /tmp
,可见/tmp/success
已成功创建: