Ders 6 - Role Based Access Control > Stage 1
Access Control Flaws ünitesinin LAB: Role Based Access Control(Role Dayalı Erişim Kontrolü) dersinin bir alt başlığı olan Stage 1: Bypass Business Layer Access Control dersinde bir işçinin login olunabilen bir sistem üzerinde normalde yetkisi olmadığı halde yönetici işini gerçekleştirebilmesinden bahsedilecektir.

Dersin Hedefi

Hedefiniz ders ekranındaki sistemin erişim kontrolü zayıflığından faydalanarak Delete işlevini kullanmaktır. Sistem kullanıcılarının oturum açma şifreleri ilk adlarının küçük harfli bir şekilde yazılışından oluşur(Mesela Tom kullanıcısı için oturum şifresi tom'dur).

Açıklamalar

Butonlar HTML sayfalarında iki farklı kodlama ile dahil edilebilmektedir. Bunlar;

ve


şeklindedir. İkisi de aynı işleve ait olan, yani form'ları submit'leme işlevini yerine getiren bir buton ekrana verirler.



Butonlara değinilmesinin nedeni buton ekleme etiketinin attribute'u(özelliği) olan value=""yu bu derste kullanacak olmamızdır. Value özelliğinin içerisindeki veri form gönderilirken name özelliğinin değeri olan degisken'e atanır(degisken="Tıkla"). Sunucu bu değişken aracılığıyla value özelliğindeki değeri edinir. Edindiği bu değere göre bazı kararlar verip bu kararları icraata dönüştürür ve istemciye sonucu döndürür. İşte bu dersin kilit noktası da budur. Sunucunun karar verme melekesini kendi emellerimiz doğrultusunda yönlendireceğiz. Bunu value="" özelliği içerisine hard code'lama ile, yani elle yeni bir değer yazarak yaparız. Böylece yetkimiz olmayan bir işlevi gerçekleştirmiş oluruz.

Dersin Çözümü

Dersi başarıyla tamamlayabilmek için yetkisi en kısıtlı grup olan employee grubuna ait bir personeli ders ekranındaki sistemden seçmelisiniz. Diyelim ki Tom Cat kullanıcısını seçtiniz. Şifre olarak isminin küçük harfli halini giriniz: tom. Sistemde oturum açtıktan sonra ekrana gelen yeni arayüzdeki butonlardan birine sağ tıklayınız ve ardından Inspect Element(Öğeyi Denetle) seçeneğine tıklayınız. ViewProfile butonuna sağ tıkladığınızı varsayalım. Açılan Web geliştiricisi aracındaki seçili satır sağ tıkladığınız nesneyi(butonu) gösterecektir. Bu satırdaki value="" özelliğinin değeri gördüğünüz üzere ViewProfile'dır.







Şimdi bir düşünün. Sunucu tarafından karar verme ve icraata dökme sürecininin baş aktörü value attribute'unun değeri olduğuna göre var olan bir butonun value'sunu değiştirsek acaba sunucu nasıl davranırdı dersiniz? Bu durum uygulamanın kaynak kodunun işleyişine göre değişir. Eğer uygulamanın kaynak kodunun yapacağı işleve karar vermek için kullandığı value attribute'unun alabileceği değerlerden birini tahmin edebilirsek ve yetki için güvenlik önlemi alınmamışsa tahmin ettiğimiz işlevi kullanabilme ihtimali doğmuş olur. Bu derste bizden Delete işlevini(fonksiyonunu) yetkisi olmayan bir kullanıcının kullanması istenmektedir. Employee grubundaki Tom kullanıcısının grubu gereği böyle bir yetkisi yoktur. Zaten oturum açtığınızda gördüğünüz üzere Delete diye bir buton ekrana gelmeyecektir. Şimdi ekrana gelen listBox'daki Tom Cat kullanıcısını seçelim ve butonlardan biri olan ViewProfile'ın value özelliğinin değerini daha önce açtığınız web geliştiricisi aracından ViewProfile'a çift tıklayarak silin ve sonra sildiğinizin yerine DeleteProfile yazın. Neden DeleteProfile derseniz bu bir tahmindir. Eğer ViewProfile diye bir değer varsa o zaman DeleteProfile diye bir şey de olabilir diye düşünmelisiniz. Sonuçta DeleteProfile'ı value'ya yazdıktan ve enter'ladıktan sonra göreceğiniz üzere ekrandaki ViewProfile butonunun etiketi DeleteProfile şekline dönecektir. Değişen butona bir kez tıklayın. Dersi başarıyla tamamladığınıza dair bildirimleri görüyor olacaksınız. Böylece Stage(Aşama) 1 bitti.

Burada faydalandığımız güvenlik açığı yetkilerin sunucu taraflı değil de istemci taraflı alınmış olmasından kaynaklanmaktadır. Yani personellerin erişim kontrolleri kaynak kodda tam anlamıyla tanımlanmadığı için ve görsel planda buton eksiltip arttırma ile erişim kontrolü sağlandı sanıldığı için bu açıktan kötü niyetli personel deneme yanılma yöntemiyle faydalanabilir ve yetkisini aşabilir.
Bu yazı 04.05.2015 tarihinde, saat 09:07:44'de yazılmıştır. 23.09.2015 tarihi ve 10:24:57 saatinde ise güncellenmiştir.
Yazar : Hasan Fatih ŞİMŞEK Görüntülenme Sayısı : 2381
Yorumlar
Henüz yorum girilmemiştir.
Yorum Ekle
*
* (E-posta adresiniz yayınlanmayacaktır.)
*
*

#Arşiv


#Giriş

ID :
Şifre :