Acunetix ten aldığın CSRF açığını kısaca anlatayım sen karar ver...
Sitelerdeki CSRF saldırısına neden olan zaafiyetin temelinde geliştiricilerin uygulamayı geliştirme aşamasında, istemci tarafından gelen her isteğin gerçekten kullanıcıdan geldiğini düşünmeleri yatıyor. PHP ile hazırlanmış örnek bir alışveriş sitesiyle saldırı daha iyi anlaşılacaktır. Site ulaşım için aşağıdaki adresi kullanıyor olsun;
http://ww.shopping.com
Sitede bir kullanıcı, hesabıyla oturum açıp alışveriş yapabilsin. Alışveriş sırasında sepete ekleme yapılabilsin ve sepettekiler silinebilsin. Sepettekilerin silinebilmesi için aşağıdaki gibi bir kod parçacığıyla itemciden istek geldiği düşünülsün.
<form action="admin.php" method="GET">
<input type="hidden" name="cmd" value=”deleteall”/>
<input type="submit" value="delete" />
</form>
Burada GET isteği ile sunucuya, kullanıcı alışveriş sepetindekileri silmesini isteyen parametre gönderiliyor. Sunucu tarafında oturum kontrolü yapılıyor ve geçerli bir oturumdan geldiği için istek yerine getiriliyor.
Bir saldırgan burada bulunan açıklıktan faydalanmak için bir web sitesi hazırlıyor. Hazırlamış olduğu sayfa içerisine açıklığın bulunduğu alışveriş sitesine istek yapmayı sağlayan “<img>” etiketi koyuyor. Kaynak değeri olarak alışveriş sitesinde kullanıcı sepetini boşaltan istek adresi konuyor. “<img>” etiketi, “width” ve “height” değerleri ayarlanarak sayfada gösterilmiyor. Sonuçta sayfa açıldığında alışveriş sitesine kullanıcı sepetini sil isteği gönderilecektir. İstek, geçerli kullanıcı hesabından gelmemişse herhangi bir işlem yapılmayacak, geçerli bir kullanıcı hesabından gelmişse işlem yapılacaktır. Saldırganın hazırlamış olduğu sitenin adresi
http://www.attacker.com/index.html
olsun. Sayfa içerisine aşağıdaki kod parçacığı konulsun:
<html>
...
<img src=
www.shopping.com/admin?cmd=deleteall width=0 height=0 />
...
<html>
CSRF için bir saldırı senaryosu şu şekilde gerçekleşecektir; bir kullanıcı alışveriş sitesinde kendi hesabıyla oturum açıyor ve sitede gezinmeye başlıyor ve sepetine bazı şeyler ekliyor. Bu sırada saldırganın hazırlamış olduğu betik içeren sayfayı açıyor. Saldırganın hazırlamış olduğu sayfada bulunan <img> etiketi ile sepetindekileri silecek istek alışveriş sitesine gönderiliyor ve kullanıcı sepeti boşalıyor. Burada kullanıcının oturum bilgisi isteğin oturum bilgisi olarak isteğe eklendiğinden yetkilendirme ile ilgili bir problem ortaya çıkmayacaktır ve silme işlemi gerçekleşip işlem devam edecektir.