2.04 | Insecure Direct Object References
Dự đoán & đoán mẫu URL
Xem hồ sơ của bạn theo một cách khác
Ứng dụng này dường như tuân theo mô hình RESTful, trong đó mỗi tài nguyên có thể được truy cập thông qua một đường dẫn cụ thể.
Trong nhiều hệ thống, người dùng có thể có vai trò cao hơn (admin, manager,...) cho phép họ truy cập hồ sơ của người khác. Khi đó, chỉ /profile sẽ không đủ vì dữ liệu xác thực của phiên đăng nhập hiện tại không chỉ định rõ hồ sơ nào đang được truy vấn.
Nhiệm vụ
Dựa vào cách đặt URL của hệ thống, hãy suy nghĩ về một mẫu đường dẫn hợp lý để truy cập hồ sơ cá nhân theo cách trực tiếp bằng Direct Object Reference (DOR).
Gợi ý
- Trong nhiều hệ thống, hồ sơ cá nhân có thể được truy cập bằng cách thêm ID người dùng vào URL, ví dụ:
WebGoat/profile/12345 - Hoặc có thể sử dụng một từ khóa phổ biến như
"me":WebGoat/profile/me - Nếu ứng dụng sử dụng truy vấn GET:
WebGoat/profile?id=12345
Gợi ý
🔹 Kiểm tra yêu cầu trước đó cho hồ sơ cá nhân
🔹 Bạn cần dữ liệu từ yêu cầu trước đó để biết ID của mình
🔹 Thử nối ID của bạn vào yêu cầu trước đó theo mẫu:
WebGoat/IDOR/profile/{yourId}
Giải pháp
1️⃣ Sử dụng Developer Tools (F12)
- Mở tab "Network" trên Developer Tools
- Quan sát các request khi thực hiện hành động trên trang
- Tìm request chứa user ID trong URL hoặc tham số trong request