- Katılım
- 2 Ocak 2026
- Mesajlar
- 19
- Tepkime puanı
- 22
- Puan
- 3
IDOR - Insecure Direct Object Reference
IDOR test metodolojisi ve yetki kontrolü atlatma senaryoları.Metodoloji
Erişim yetkisi olmaması gereken bir nesneye veya veriye doğrudan referans vererek (genellikle ID değiştirerek) erişilebilmesidir.İstek türü (GET, POST, DELETE vb.) değiştirilerek de test edilebilir.
GET /api/getUserInfo?id=245 → Sizin veriniz.
GET /api/getUserInfo?id=246 → ID'si 246 olan başka bir kullanıcının verisi.
https://onlinestore.thm/order/1234/invoice → Sizin faturanız.
https://onlinestore.thm/order/1000/invoice → 1000 numaralı başka bir fatura.
Örnekler
Base64 ile encode edilmiş ID: ?user_id=1305 → ?user_id=MTMwNQ==MD5 ile Hash'lenmiş ID: ID: 123 → MD5(ID): 202cb962ac59075b964b07152d234b70
Tahmin Edilemez ID'ler
Bazen ID'ler sıralı sayılar yerine karmaşık (UUID vb.) olabilir. Bu ID'leri tahmin etmek veya kırmak neredeyse imkansızdır.Çözüm: İki farklı hesap oluşturun (Hesap A ve Hesap B).
Hesap A → user_id = abc-123-xyz
Hesap B → user_id = def-456-uvw
Hesap A ile giriş yapın ve profilinize gidin: /profile?id=abc-123-xyz.
Şimdi URL'deki ID'yi Hesap B'nin ID'si ile değiştirin: /profile?id=def-456-uvw. Eğer Hesap B'nin bilgilerini görebiliyorsanız, IDOR zafiyeti mevcuttur.
Nerede Aranır?
1- Adres Çubuğunda (URL): /profile?user_id=1232- AJAX/API İstekleri: Burp Suite gibi araçlarla arka planda çalışan GET /api/v1/user/details gibi istekleri izleyin.
3- JavaScript Dosyaları: Kaynak kodda fetch("/user/details?user_id=" + uid) gibi dinamik istekler arayın.
4- Gizli Parametreler (Parameter Mining): /user/details (kendi bilginizi gösterir) isteğine ?user_id=123 ekleyerek başka bir kullanıcının bilgisini göstermeyi deneyin.