随笔 - 13,  文章 - 0,  评论 - 0,  阅读 - 7130

0x00前言

ActiveMQ简介

ActiveMQ的web控制台分三个应用,admin\api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。

fileserver是一个RESTful API接口,我们可以通过GET、PUT、DELETE等HTTP请求对其中存储的文件进行读写操作,其设计目的是为了弥补消息队列操作不能传输、存储二进制文件的缺陷,但后来发现,其使用率并不高,文件操作容易出现漏洞

所以,ActiveMQ在5.12.x~5.13.x版本中,已经默认关闭了fileserver这个应用(可以在conf/jetty.xml中开启);在5.14.0版本之后,彻底删除了fileserver应用。

0x01漏洞复现

漏洞描述

该漏洞出现在fileserver应用中,漏洞原理:ActiveMQ中的fileserver服务允许用户通过HTTP PUT方法上传到指定目录。Fileserver支持写入文件(不解析jsp),但是支持移动文件(Move)我们可以将jsp的文件PUT到Fileserver下,然后再通过Move指令移动到可执行目录下访问。

影响版本

Apache ActiveMQ5.0.0-5.13.2

环境搭建

使用vulhub漏洞靶场;

 Vulhub漏靶场搭建方法:
vulhub官网:http://vulhub.org/#/docs/download-vulhub/
1.安装docker,windows自己去官网下。Linux执行:sudo apt-get install docker.io
2.安装python和pip:sudo apt-get install python和suao apt-get install python-pip
3.安装docker-compose:pip install docker-compose
4.下载Vulhub:git clone https://github.com/vulhub/vulhub.git

安装好之后进入对应的漏洞文件执行:docker-compose up -d

TQ7y6g.png

打开浏览器访问,可以成功访问。
TlpXE8.png

漏洞复现

任意文件写入的前提是需要知道web路径,所以使用默认账号密码admin/admin登录后台,查看ActiveMQ的绝对路径。
TlgGGj.png

上传webshell,访问fileserver目录进行抓包,将传输方式改为PUT,目录后跟上传的文件名shell.txt,提交的内容写入我们的shell文件,HTTP状态码响应为204,表示上传成功。
TloFd1.png

访问shell.txt,确定上传成功。
TloaLj.png

因为传输的默认目录是没有解析权限的,所以需要将shell文件移动到存在权限的目录,在这儿我们就可以用到我们的绝对路径了,使用MOVE方式,将shell传输到/opt/activemq/webapps/api目录中,响应信息为204表示移动成功。
Tl7JKg.png

在api目录下访问shell.jsp文件,可以被成功访问。
Tlba90.png

posted on   herbmint  阅读(127)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示