Elasticsearch 未授权访问漏洞
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。Elasticsearch的增删改查操作全部由http接口完成。由于Elasticsearch授权模块需要付费,所以免费开源的Elasticsearch可能存在未授权访问漏洞。该漏洞导致,攻击者可以拥有Elasticsearch的所有权限。可以对数据进行任意操作。业务系统将面临敏感数据泄露、数据丢失、数据遭到破坏甚至遭到攻击者的勒索。
Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。
漏洞复现
步骤一:使用以下Fofa语法进行Elasticsearch产品搜索
"Elasticsearch" && port="9200"
步骤二:存在未授权访问则直接进入到信息页面…不需要输入用户密码登陆
#访问测试
http://localhost:9200/_plugin/head/web管理界面
http://localhost:9200/cat/indices
http://localhost:9200/river/search 查看数据库敏感信息
http://localhost:9200/nodes查看节点数据
访问http://ip/9200;返回字段中有“you know,for search”则代表有未授权漏洞。
若访问后需要登录则代表没有未授权漏洞
漏洞修复
- 访问控制策略,限制IP访问,绑定固定IP
- 在 config/elasticsearch.yml 中为9200端口设置认证等