Mmaiqai.com
🔐 API Testing · Chương 4 · Mục 4.8 · OWASP #8

Server-Side Request Forgery (SSRF)

🎯 Mục tiêu học: hiểu rủi ro khi API nhận 1 URL/địa chỉ từ client rồi tự gọi tới đó ở phía server — kẻ tấn công có thể lợi dụng để "mượn" server làm bàn đạp truy cập tài nguyên nội bộ.

Rủi ro là gì

Nhiều API có tính năng nhận URL từ client (webhook, tải ảnh từ link, xem trước liên kết...) rồi server tự gọi HTTP request tới URL đó. Nếu không kiểm soát, kẻ tấn công đưa vào URL nội bộ (localhost, IP private, hoặc endpoint metadata của nhà cung cấp cloud) để server vô tình truy cập tài nguyên đáng lẽ không thể truy cập từ bên ngoài.

POST /v1/webhooks/validate
Body: { "callbackUrl": "https://doi-tac.com/hook" }   ← trường hợp bình thường

Body: { "callbackUrl": "http://169.254.169.254/latest/meta-data/" }
   ← địa chỉ metadata nội bộ của nhà cung cấp cloud — nếu server tự GET
     tới đây, có thể lộ thông tin/quyền truy cập nội bộ nhạy cảm

Checklist kiểm tra

Cách kiểm tra

Mã TCNội dungKỳ vọng
TC-SSRF-01Với mọi field nhận URL từ client, thử đưa vào địa chỉ nội bộ (localhost, 127.0.0.1, địa chỉ IP private 10.x/172.16.x/192.168.x)Bị từ chối, không cho server gọi tới địa chỉ nội bộ
TC-SSRF-02Thử đưa vào địa chỉ metadata service của nhà cung cấp cloud (nếu biết hệ thống host ở đâu)Bị chặn — đây là mục tiêu tấn công SSRF phổ biến và nguy hiểm nhất
TC-SSRF-03Thử redirect: URL hợp lệ ban đầu nhưng chuyển hướng (301/302) sang địa chỉ nội bộServer không tự động theo redirect tới địa chỉ nội bộ

📌 Ghi nhớ

SSRF chỉ xuất hiện ở những API có tính năng "nhận URL từ client và tự gọi tới đó" — không phải API nào cũng có rủi ro này, nhưng cần rà soát kỹ mọi field nhận URL/link/callback trong toàn bộ hệ thống.

📖 Thuật ngữ Anh–Việt (mục này)

Đề thi dùng thuật ngữ tiếng Anh — nhớ đúng cụm bên trái. Bấm 🔊 để nghe từng từ, hoặc "Đọc tất cả" để nghe lần lượt Anh → (vài giây) → Việt.

Thuật ngữ (EN)Nghĩa & ghi nhớ nhanh
SSRFServer-Side Request Forgery — server bị lợi dụng để gọi request tới địa chỉ ngoài ý muốn
Metadata serviceDịch vụ nội bộ của nhà cung cấp cloud chứa thông tin cấu hình/quyền truy cập của máy chủ
Private IP rangeDải địa chỉ IP nội bộ (10.x, 172.16.x, 192.168.x) không nên truy cập được từ bên ngoài

📎 Nội dung do maiqai.com biên soạn dựa trên OWASP API Security Top 10 (2023, CC BY-SA 4.0), diễn giải lại bằng tiếng Việt kèm ví dụ minh hoạ riêng.