一、简介
ActiveMQ
的web控制台分为三个应用:admin、api和fileserver
,其中admin是管理员页面
,api是接口
,fileserver是存储文件接口
;admin和api都需要登录后才能使用,fileserver无需登录。- fileserver是一个
RESful API
接口,我们可以通过GET、PUT、DELETE等HTTP请求对其中存储的文件进行读写操作
,其设计的目的是为了弥补消息队列操作不能传输、存储二进制文件的缺陷
,但后来发现:- (1) 其使用率并不高
- (2) 文件操作容易出现漏洞
- 所以在
ActiveMQ5.12.x--5.13.x
版本中,已经默认关闭了fileserver
这个应用(可以在conf/jetty.xml
中开启);在5.14.0版本以后彻底删除了fileserver应用
。我们在测试过程中可以关注ActiveMQ的版本,避免走弯路。 - 本漏洞出现在
fileserver应用
中,漏洞的原理就是fileserver支持写入文件(但是不解析jsp)
,同时支持移动文件(MOVE请求)。所以,我们只需要写入一个文件,然后使用MOVE请求将其移动到任意位置,造成任意文件写入漏洞。文件写入有几种方法:- (1) 写入
webshell
- (2) 写入
cron或者ssh key
- (1) 写入