漏洞原理
利用ES的备份功能,快照应该是文件,但ES没有对快照是否是文件进行验证,遇到目录就递归读取文件的内容从而导致目录遍历。
复现环境
在ubuntu 16.04虚拟机中用vulhub靶场提供的docker容器来复现
jdk版本1.7
ElasticSearch版本1.6.0
影响版本
1.6.1以前
复现过程
创建仓库,仓库名称为test:
创建仓库test2,因为test2命名是snapshot-test,ES会认为这是test仓库的backdata快照,
读取文件/etc/passwd :http://192.168.101.8:9200/_snapshot/test/backdata%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2f..%2fetc%2fpasswd
读取结果:
本文仅用于技术学习和交流,严禁用于非法用途,否则产生的一切后果自行承担。
如需转载,请注明出处,这是对他人劳动成果的尊重。