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

一、漏洞描述

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

二、影响版本

Apache ActiveMQ 5.0.0 - 5.13.2

三、环境搭建

1、下载vulhub源码,下载链接:

2、下载安装好docker服务,使用docker-compose up -d启动环境即可

 四、漏洞复现

1、使用默认账号密码admin,打开浏览器访问靶场:http://your-ip:8161/admin/test/systemProperties.jsp,查看ActiveMQ的绝对路径:

 

2、知道ActiveMQ版本之后,可以打开Burpsuite,访问fileserver目录进行抓包,在BP中将传输模式,修改数据包,改为PUT,目录后加上想要上传的文件名,提交数据中写入任意测试字符,返回包响应头为204一般就是上传成功

 

 访问1.txt,确定成功上传

 3、存在任意文件上传,可以直接getshell,重新发包,传输文件名shell.jsp,传输一个jsp的webshell,我使用的是哥斯拉生成的webshell,返回204说明传输成功

 访问之后,发现无法执行没有解析

 4、查询资料得知,传输的默认目录是没有解析权限的,所以需要将shell文件移动到存在权限的目录中,这就用到第一步得到的绝对路径了,使用MOVE方式,将shell传输到/opt/activemq/webapps/api/目录中,返回包返回204说明移动成功

 访问http://10.10.114.184:8161/api/shell.jsp,成功访问,说明成功移动

 利用哥斯拉进行连接,成功getshell,因为ActiveMQ的api目录是需要认证的,所以在哥斯拉中添加数据时候,需要写入请求参数

 

 5、getshell证明

 完

posted @ 2020-12-30 17:02  bonga  阅读(649)  评论(0编辑  收藏  举报