Lab: Unprotected admin functionality with unpredictable URL
Lab: Unprotected admin functionality with unpredictable URL
Bu yazıda PortSwigger’daki “Unprotected admin functionality with unpredictable URL” labını nasıl çözdüğümü anlatacağım. Lab aslında oldukça basit, ancak Access Control mantığını anlamak açısından önemli bir örnek .

Lab’ın Amacı
Uygulamanın içinde gizli bir admin paneli var. Bu panel korumasız, yani doğru URL’i bilen herkes erişebiliyor. Görevimiz admin panele ulaşıp “carlos” isimli kullanıcıyı silmek.

Lab’a girer girmez dizin taraması başlattım

dizin taraması sonucunda herhangi bir panel girişi bulamadım
Sayfanın kaynak kodunu kontrol ettim. Ana sayfanın HTML yapısını incelerken aşağıdaki JavaScript kodu gözüme çarptı:

Burada dikkat edilmesi gereken en önemli nokta şu: isAdmin = false olduğu için link kullanıcıya gösterilmiyor. Ancak admin panelinin URL’i yine de kaynak kodda açık bir şekilde duruyor. Bu da bize gerekli bilgiyi ele veriyor.
İstemci tarafında bir şeyi gizlemek hiçbir zaman gerçek bir güvenlik önlemi değildir. View-source yapıldığında tüm bu kodlar görülebilir.
Kaynak kodda gördüğüm URL şöyleydi:

Bu yolu tarayıcıda açtığımda hiçbir doğrulama olmadan doğrudan admin paneline erişebildim. Kullanıcı listesi, silme işlemleri gibi tüm yönetim fonksiyonları aktifti.

Paneldeki kullanıcı listesinden “carlos” hesabını silerek lab’ın istediği işlemi gerçekleştirdim. Silme işleminden sonra lab başarıyla tamamlandı.
Bu Labın Öğrettiği Şey
Bu tür lablar küçük görünse de Access Control zafiyetlerinin temel mantığını öğretmek için ideal. Bu labda çıkarılması gereken sonuçlar şöyle:
URL’i karmaşık veya tahmin edilmesi zor yapmak güvenlik sağlamaz.
Admin kontrolü istemci tarafında yapılmaz; JavaScript ile gizlenen hiçbir şey güvenli değildir.
Yetkilendirme mutlaka sunucu tarafında yapılmalıdır. Kullanıcının admin olup olmadığı backend tarafından kontrol edilmelidir.
Sonuç
Bu labda sadece kaynak koduna bakarak gizli admin panel URL’ini buldum ve panel üzerinden carlos kullanıcısını sildim. Basit ama oldukça öğretici bir örnekti.







