top of page

Lab: Unprotected admin functionality with unpredictable URL

Yazarın fotoğrafı: Songül ÖZÜGÜRLER
Songül ÖZÜGÜRLER
28 Nis
1 dakikada okunur

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: Unprotected admin functionality with unpredictable URL

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: Unprotected admin functionality with unpredictable URL

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

Lab: Unprotected admin functionality with unpredictable URL

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ı:

Lab: Unprotected admin functionality with unpredictable URL

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:

Lab: Unprotected admin functionality with unpredictable URL

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.

Lab: Unprotected admin functionality with unpredictable URL

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.

 
 
bottom of page