Görev ve Zafiyet Senaryosu
Operatör kendi profilini görüntülerken URL de /api/v1/users?id=102 çağrısı yapıldığını fark eder. Sayısal parametre sıralı bir ID yapısını işaret etmektedir. Saldırgan id=1 yaparak sistem yöneticisinin hassas bilgilerine erişir.
Hedef (Objective)
🎯 Görev: /api/v1/users?id=102 parametresindeki ID değerini yönetici hesabı olan 1 veya 01 e değiştirerek yöneticinin gizli API anahtarını ve bayrağını sızdırın.
Adım Adım Çözüm Metodolojisi
API İsteğini DevTools ta Yakalama
Network sekmesini açarak profil sayfasının hangi API endpoint ine istek attığını gözlemleyin.
Parametre Değerini Değiştirme
Adres çubuğunda veya terminal curl ile /api/v1/users?id=1 adresine istek gönderin.
Yönetici Verisini Çıkarma
Sunucunun yetki kontrolü yapmadan yöneticinin e-postasını, API anahtarını ve bayrağını döndürdüğünü doğrulayın.
Örnek Payload ve İstismar Kalıpları
/api/v1/users?id=1/api/v1/users?id=01curl -i https://corp-portal.local/api/v1/users?id=1
Güvenli Kodlama ve Savunma Mekanizmaları
Zafiyet Nasıl Kapatılır?
- Kullanıcıdan gelen nesne ID lerini mutlaka oturum açmış kullanıcının kimliği ile eşleştirerek yetki doğrulaması yapın.
- Sıralı (sequential) tamsayı ID ler yerine tahmin edilemez GUID / UUID v4 anahtarları tercih edin.
- API uç noktalarında merkezi erişim kontrol katmanı (Role-Based Access Control - RBAC) devreye alın.
Uygulamaya Başlamaya Hazır mısınız?
SiberAdam interaktif arenasında hedef tarayıcı, DevTools ve CyberTerminal ile bayrağı hemen yakalayın.
Şimdi Çözmeye Başla ⚡