胡献根 2020-02-13
漏洞原理
fileserver是Apache ActiveM提供的一个RESTful API接口,可通过GET、PUT、DELETE等HTTP请求对文件进行读写操作,设计目的是为了弥补消息队列操作不能传输、存储二进制文件的缺陷,在文件操作过程中出现了任意文件读写漏洞。
影响版本
5.12.x之前的版本。
复现环境
将ActiveMQ部署在MAC上,使用版本为apache-activemq-5.11.1,JDK版本为1.7
复现过程
启动ActiveMQ,并尝试上传jsp木马,返回401,上传时失败。。。
把文件名后缀改为txt,再上传,返回204,上传成功(网上有些文章直接上传jsp也能传上去,我这里是传不上去的,原因不明。。。)
在apache-activemq-5.11.1/webapps/fileserver文件夹下可以找到刚才上传的文件:
此时的jsp木马是无法执行的,原因有二:1.文件名后缀是txt,2.fileserver目录无法执行jsp。所以需要将该文件后缀改为jsp,然后移动到可以执行jsp的文件夹内。
查看activemq的绝对路径:http://IP:8161/admin/test/systemProperties.jsp,将木马传到webapps/api下面:
访问上传的木马,执行ls命令成功: