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, 文件上传漏洞, 无后门, 暴力破解