CSRF Korumasız HTML Formu Açıklığı


a. Cross Site Request Forgery Nedir?

Cross Site Request forgery saldırısı kullanıcının oturum açtığı bir web sitesi yan sekmedeyken saldırganın sitesine uğraması ya da saldırgandan gelen mail'i açması sonrası gelen linki tıklamasıyla (ya da tetiklemesiyle) beraber oturum açtığı web sitesinde istemediği bir eylemi gerçekleştirmesine denir. Örneğin kullanıcı bir bankacılık sitesinde oturum açmış olabilir ve yan sekmede ise saldırganın sitesine ya da mail'ine yönlenmiş olabilir. Saldırganın sayfasında ya da mail'inde img tag'ına eklenmiş form submit'leme linki ile istemeden bankacılık web sitesine bir talepte bulunabilir ve belki de saldırganın hesabına para transfer edebilir.

Ayrıntılı bilgi için CSRF Nedir ve Nasıl SameSite ile Tamamen Önlenir

b. CSRF Token Nedir?

CSRF Token html form'ları içerisine konan bir hidden alanındaki değerdir. Kullanıcı her form submit'lemesinde html formdaki token'ı da gönderir ve sunucu gönderdiği token'ı aldığını görünce submit işlemini gerçekleştirir. Eğer gönderdiği token değil de başka bir değerde veri geri dönerse de submit işlemini gerçekleştirmez.

c. HTML Form without CSRF Protection Zafiyetini Kapama [Kritiklik: Orta Seviyeli Açıklık]

Bu zafiyet csrf token'ları ile kapanır. CSRF Token html form'ları içerisine konan bir hidden alanındaki değerdir. Kullanıcı her form submit'lemesinde html formdaki token'ı da gönderir ve sunucu gönderdiği token'ı aldığını görünce form submit işlemini gerçekleştirir. Eğer gönderdiği token değil de başka bir değerde token geri dönerse de submit işlemini gerçekleştirmez. Böylece saldırganlar bir web sayfası ya da mail aracılığıyla kullanıcılara form submit'lemesi yaptıramayacaklardır ve istenmeyen sonuçların önüne geçilmiş olacaktır.

Not:

Form submit'leme işlemi eğer ajax talepleri ile gerçekleştiriliyorsa token'lar ajax kodlaması ile taleplere başlık olarak eklenmelidir ve sunucu, kontrolü ajax taleplerinin başlığına bakarak sağlamalıdır.

d. False Positive Ayrımı

Önemli olan oturum açmış bir kullanıcının karşılaşabileceği yetkiye dayalı bir formda token'ın olmasıdır. Çünkü saldırganın isteyeceği şey zorla kullanıcıyı çereziyle beraber bir yetki isteyen formu submit'leştirmesidir. Dolayısıyla yetkiye dayalı form'lar bulursan ve hidden olarak token yoksa bu durumu raporla.

Yararlanılan Kaynaklar

  • https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/cross-site-request-forgery-in-login-form/
Bu yazı 27.08.2024 tarihinde, saat 18:37:21'de yazılmıştır. 27.08.2024 tarihi ve 15:45:04 saatinde ise güncellenmiştir.
Yazar : Hasan Fatih ŞİMŞEK Görüntülenme Sayısı : 221
Yorumlar
Henüz yorum girilmemiştir.
Yorum Ekle
*
* (E-posta adresiniz yayınlanmayacaktır.)
*
*

#Arşiv


#Giriş

ID :
Şifre :