elasticsearch未授权访问漏洞怎么在日常的测试中发现

你好!在日常测试中容易遗漏的严重风险的漏洞,本文可以帮助安全测试工程师在日常测试中不遗漏这个严重风险的漏洞。

什么是elasticsearch

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
so 如果未授权访问,泄露的信息还是很多的。

怎么识别到存在elasticsearch未授权访问漏洞

一般测试中我们会对目标的地址进行端口扫描,如果扫描到9200端口(ElasticSearch端口(默认9200)。
我们直接访问看到是这个页面,就是存在这种漏洞:
在这里插入图片描述
进一步验证可以访问:HOST:9200/_cat/indices
可以看到数据库的一些信息。

漏洞利用

等于未授权访问这个API地址,可以直接进行数据的增删改操作。
HOST:9200/_nodes
HOST:9200/_river

或者下载ElasticHD直接链接,
github可以直接下载,下载后打开软件,浏览器访问:host:9200
就可以直接链接
在这里插入图片描述

修复建议

1、防火墙上设置禁止外网访问9200端口。
2、使用Nginx搭建反向代理,通过配置Nginx实现对Elasticsearch的认证
3、限制IP访问,绑定固定IP
4、在config/elasticsearch.yml中为9200端口设置认证:

http.basic.enabled true #开关,开启会接管全部HTTP连接
http.basic.user "admin" #账号
http.basic.password "admin_pw" #密码
http.basic.ipwhitelist ["localhost", "127.0.0.1"]

更多推荐