Jenderal92/laravel-filemanager-unrestricted-upload

GitHub: Jenderal92/laravel-filemanager-unrestricted-upload

针对 alexusmai/laravel-file-manager 无限制文件上传漏洞(CVE-2025-56399)的自动化概念验证工具,支持批量检测并验证 RCE 执行效果。

Stars: 1 | Forks: 0

# Laravel FileManager 无限制文件上传 (CVE-2025-56399) **CWE-434: 危险类型文件的无限制上传** **CVSS 评分: 8.5 (高危)** ## 📋 描述 该工具为 **CVE-2025-56399** 提供了一个 **概念验证**,这是 `alexusmai/laravel-file-manager` (版本 ≤ 3.3.1) 中的一个严重漏洞。 该漏洞允许 **经过认证的攻击者** 通过上传恶意构造的文件、绕过客户端验证并将其重命名为 PHP 扩展名来实现 **远程代码执行 (RCE)**。 此脚本自动化了整个过程: - 检测 FileManager endpoint (支持多种 Laravel FileManager 变体) - 提取 CSRF token - 上传 payload 并验证执行情况 ## 🚨 漏洞详情 (CVE-2025-56399) | 属性 | 值 | |-----------|-------| | **漏洞类型** | 无限制文件上传 → RCE | | **CWE** | CWE-434 | | **CVSS 评分** | 8.5 (高危) | | **攻击向量** | 网络 | | **攻击复杂度** | 低 | | **所需权限** | 低 (已认证) | | **用户交互** | 主动 | ### 攻击链 (根据 CVE-2025-56399) 1. 通过认证登录应用程序 2. 访问 FileManager 界面 (`/file-manager`) 3. 上传包含 PHP 代码的 `.png` 文件 4. 使用重命名 API 将扩展名更改为 `.php` 5. 访问该文件 → 服务器执行 PHP 代码 → **实现 RCE** ## 🛠️ 安装 ``` git clone https://github.com/Jenderal92/laravel-filemanager-unrestricted-upload.git cd laravel-filemanager-unrestricted-upload pip install -r requirements.txt ``` 环境要求 · Python 2.7 · requests · colorama 📖 使用方法 ``` python2 lfm.py list.txt ``` 输入格式 (list.txt) ``` https://target1.com https://target2.com http://target3.com ``` 输出 · valid.txt – 已验证的 webshell URL 列表 (访问时附加 ?shinday=1) 输出示例: ``` https://target.com/storage/shxt_123456.php?shinday=1 ``` 🧪 漏洞利用工作原理 1. 检测 – 检查常见的 FileManager 路径: · /file-manager/tinymce · /file-manager/ckeditor · /file-manager/tinymce5 · /file-manager/summernote · /admin/file-manager/tinymce 对于 alexusmai/laravel-file-manager,默认路径为 /file-manager。如有需要,您可以将其添加到脚本的路径列表中。 2. CSRF Token 提取 – 从 或 _token 输入字段中提取 token。 3. 初始化 – 调用 /file-manager/initialize 获取磁盘配置。 4. 上传 – 上传 .htaccess (以绕过限制),然后使用伪造的 GIF MIME 类型上传 payload (shxt_.php)。 5. 验证 – 检查 ?shinday=1 是否返回字符串 Shinday;如果是,则表明该 webshell 有效并将其保存到 valid.txt 中。 📂 Payload 详情 上传的 PHP 文件是一个单文件 webshell,它可以: · 显示系统信息 (php_uname) · 提供文件上传表单 (用于添加更多工具) · 在接收到 ?shinday=1 参数时返回完整的 webshell 界面 · 否则,输出一个合法的 GIF89a 图像以规避检测 通过以下方式访问 webshell: ``` https://target.com/path/to/shxt_123456.php?shinday=1 ``` 🛡️ 缓解措施 为了防范此漏洞: 1. 更新包 – 等待补丁发布 (目前尚无官方修复)。考虑将 alexusmai/laravel-file-manager 替换为其他替代方案。 2. 限制访问 – 为所有 FileManager 路由添加认证 middleware: Route::group(['middleware' => ['auth', 'admin']], function () { // File Manager routes }); 3. 如果不需要则禁用 – 移除该包: composer remove alexusmai/laravel-file-manager 4. 阻止 PHP 执行 – 在 storage 目录中放置一个 .htaccess 文件: Deny from all 5. 验证文件类型 – 对上传的文件实施严格的服务器端验证。 📦 受影响版本 包名 受影响版本 alexusmai/laravel-file-manager ≤ 3.3.1 🔗 参考资料 · CVE-2025-56399 - NVD · GitHub 安全公告 · Snyk 漏洞数据库 · VulDB 条目 · alexusmai/laravel-file-manager 📜 免责声明 警告:此工具仅供教育和授权的安全测试使用。 使用此工具即表示您同意: · 仅测试您拥有或获得明确授权的系统 · 不得用于恶意目的 · 遵守所有适用法律 作者对任何滥用或造成的损害概不负责。
标签:CISA项目, PoC, Python, RCE, 文件上传漏洞, 无后门, 暴力破解