Ders 7 - Cross Site Request Forgery (Low Level)
Bu yazıda DVWA adlı web uygulamasının içerisinde bulunan bir sayfanın güvenlik zafiyetinden faydalanarak Cross Site Request Forgery saldırısında bulunulacaktır.

Dersin Hedefi

DVWA'da oturum açmış kurbanın şifresini kurban fark etmeden değiştirin.

Cross Site Reqeust Forgery Nedir?

Cross-Site Request Forgery, yani sitelerarası talep sahtekarlığı saldırısı uzaktan bir form tag’ını kurbana submit’leştirmeye denir. Mesela saldırganın online bir bankacılık işlemi için kullanılan parametrelere sahip linki kurbana eposta yoluyla gönderdiğini varsayalım. Bu durumda kurban mail’i görüntülediği sıralarda ilgili bankaya ait siteye bağlı vaziyette ise istemeden bankanın bir form'unu submit’lemiş olur ve mesela saldırgana para transfer etmiş olur. Tüm bu süreci anlamlandırabileceğiniz örnek bir sonraki başlıkta bahsedilmiştir.

Cross Site Reqeust Forgery Nasıl Yapılır?

lk olarak bu dersin linkine dikkat edin:

http://localhost/dvwa/vulnerabilities/csrf/

Ardından ekrandaki metin kutularını doldurun:





Change butonu ile form'u submit'leştirdiğinizde linkin dönüştüğü son hale bakın:

http://localhost/dvwa/vulnerabilities/csrf/?password_new=deneme&password_conf=deneme&Change=Change#

Görüldüğü üzere DVWA'nın bu sayfası şifre değişikliğini "GET" methodu ile yapmaktadır. Bunu bilen saldırgan yukarıdaki linke bakarak şifre kısımlarına kendi belirlediği şifreleri koyabilir, ardından bu linki <img’nin içine gömüp bir eposta hazırlayabilir ve kurbana yollayabilir. Bunun üzerine kurban saldırgandan gelen postayı görüntülediğinde eğer DVWA'da oturumu o sıralar açık vaziyette ise şifresini istemeden değiştirmiş olur. Hem de fark etmeden... Böylesi bir senaryoda saldırgan aşağıdaki gibi bir eposta içeriğini kurbana yollayabilir:



<html>
   <head>
      TEBRİKLER, 10$ KAZANDINIZ
   
   <body>
      

Bravo size ^^

</body> </html>


Yukarıdaki <img> tag'ına dikkat edin. <img> tag'ı resim linki almalıyken bunun yerine saldırganın emelleri doğrultusunda hazırlanmış bir link almıştır. Bu link kurbanın şifresini "deneme" olarak değiştirecektir. Aklınıza şöyle bir soru gelmiş olabilir: Neden <img> tag'ı kullanıldı? Bunun nedeni <img> tag'ının aldığı linke kullanıcıdan hiçbir müdahale istemeden otomatikmen talep gönderiyor oluşundandır. Yani düşünün: Bir web sitesinde siz resim görüntülerken genellikle "resmi görüntüle" gibi butonlara basmazsınız. Resim kendiliğinden görüntülenir. İşte bunun nedeni <img> tag'ının otomatik bir şekilde resmi sunucudan istiyor oluşundandır. Saldırgan <img> tag'ının bu otomatik talep gönderme özelliğinden faydalanarak resim linki yerine kendi saldırı linkini koymuştur. Böylelikle kurban epostayı görüntülendiğinde <img> tag'ı otomatikmen kendinde olan linke resim alabilmek için talepte bulunacaktır. Sonuçta bu bir resim linki olmadığı için cevap olarak resim gelmeyecektir. Fakat sonuçta talep yapılmış olacaktır. Yani sanki kurban saldırganın gönderdiği linki tarayıcısının adres çubuğuna girip ENTER'lamış gibi olacaktır. Diğer bir ifadeyle sanki kurban DVWA'nın şifre değiştirme sayfasında yer alan formu eliyle submit'lemiş gibi olacaktır. Saldırgan kurbanın epostadan kuşkulanmaması için <img tag'ına genişlik ve yükseklik olarak 1 değerini koymuştur (width="1" height="1") Böylece <img> tag'ı resim alamadığında resim görüntülenemiyoru ifade etmek için göstereceği çarpı işaretinin görüntülenmesi engellenmiş olacaktır ve kurban hiçbir şeyden haberdar olamayacaktır.

Şimdi bu eposta içeriğinin gerçekten işe yarayıp yaramadığını test edelim. DVWA'da oturumunuz açık vaziyette dursun ve yukarıdaki eposta içeriğini bir html dosyasına yapıştırın. Ardından html dosyasını tarayıcınızın yan sekmesinde görüntüleyin. Artık şifreniz değişmiş bulunmaktadır. Bunu görmek için DVWA'nın sol alt köşesindeki Logout butonuna tıklayın ve eski şifreniz ile giriş yapmayı deneyin. Giremeyeceksiniz. Epostada kullandığınız linkin parametresinde yer alan yeni şifre ile giriş yapabilirsiniz.

NOT: Saldırı esnasında bir eposta hizmeti fark ettiyseniz kullanılmadı. Bunun yerine eposta içeriğini biz kendi tarayıcımızda görüntüleyerek saldırıyı simule ettik. Bunun nedeni popüler eposta hizmeti veren servislerin bu tip saldırıları bertaraf ediyor oluşundandır.

Sonuç

Yukarıda bahsedilen yöntemle şifre değiştirmenin dışında daha etkili saldırılar da yapılabilmektedir. Mesela bu yöntem para transferi için GET methodunu kullanan online bankacılık sitelerinde de kullanılabilir. img tag’ının içine yerleştirilen url’nin para ve transfer yap parametrelerine belli bir miktar para ve saldırganın kendi hesap bilgisi konularak kurbanın ruhu duymadan para transferi gerçekleştirilebilir. Fakat bankalar böyle açıklıklara artık sahip değiller. Üstelik email hizmeti sunan hotmail, gmail gibi servisler de <img> tagının böyle usülsüzce kullanımı konusunda önlemler almışlardır. Mesela gmail aldığı img tag’ını kendi sunucusunda değerlendiriyor ve img tag’ının resim üretmediğini tespit etiğinde img’nin src attribute’una kendi url’sini yerleştirerek eposta alıcısına postayı o şekilde sunuyor. Böylelikle kurban saldırıyı atlatmış oluyor. Bu sakıncalı URL’yi ziyaret eden Google sunucusu ise normal bir kullanıcı gibi sitelerde gezip oturum açmayacağı için gelen saldırıdan etkilenmiyor. Dolayısıyla img tag’ının bu kaydadeğer kullanımı popüler eposta servis sağlayıcıları için geçerli değildir. Ancak yeni yetme email servislerinde eğer önlem alınmamışsa kullanılabilir.

Cross Site Request Forgery'den Korunma

Hassas bilgilerin iletileceği form'larda GET kullanımından kaçınılmalıdır. GET yerine POST kullanılmalıdır. Çünkü eğer kritik form'larda GET methodu kullanılırsa formu Submit'leme işlevi linklere de verilmiş olur ve böylelikle yukarıda anlatılanlardan gördüğünüz üzere Cross Site Request Forgery'nin önü açılmış olur. Kritik olmayan noktalarda (formlarda) GET methodu kullanılabilir. GET ile POST'un arasındaki farkı öğrenmek için şu yazımı okuyabilirsiniz.

Yararlanılan Kaynak:

http://blog.10degres.net/dvwa-csrf/
Bu yazı 16.01.2016 tarihinde, saat 14:58:54'de yazılmıştır. 27.03.2016 tarihi ve 17:25:25 saatinde ise güncellenmiştir.
Yazar : Hasan Fatih ŞİMŞEK Görüntülenme Sayısı : 1218
Yorumlar
Mehmet
Abi bu ders çok temel kalmış. :( Medium ve High level' da anlatır mısın?
Bu yorum 04.08.2018 tarihinde, saat 11:56:47'de gönderilmiştir.
Hasan Fatih ŞİMŞEK
Merhaba Mehmet, hevesini anlıyorum. Ancak haftaiçleri çalışmaktayım ve haftasonları da kafa tatili yapıyorum. Durum gerçi artık biraz değişti. Uzun bir aradan sonra artık haftaiçleri bir günümün belli bir vaktini bloga harcayacağım . O nedenle talep ettiğin makaleleri belki de öncelik sırasına alıp yayınlayabilirim. İyi çalışmalar.
Bu yorum 13.08.2018 tarihinde, saat 11:21:22'de gönderilmiştir.
Yorum Ekle
*
* (E-posta adresiniz yayınlanmayacaktır.)
*
*

#Arşiv


#Giriş

ID :
Şifre :