Merhabalar,
Bugünkü konuda Portswigger firmasının kendini geliştirmek isteyenler için oluşturmuş olduğu Web Security Academy içerisinde bulunan CSRF vulnerability with no defenses adlı labın çözümünü anlatacağım.
İlgili lab linki: Lab: CSRF vulnerability with no defenses | Web Security Academy
Öncelikle bize verilen bilgilere bakacak olursak web uygulamasının kullanıcılardaki hesap bilgilerini görüntüledikleri sayfada bulunan email değiştirme fonksiyonunun CSRF ataklarına karşı zafiyetli olduğunu söylüyor ve test etmemiz için bize bir adet hesap sağlanmış. Bize verilen hesap bilgileri doğrutlusunda uygulamada giriş işlemi yaparak başlıyoruz.
Giriş yaptıktan sonra karşılaştığımız sayfa bu şekilde:
Rastgele bir mail adresi girerek Burp Suite ile giden requesti inceliyorum.
Giden request incelendiği zaman cookie veya body içerisinde giden bir csrf tokeni bulunmuyor. Bu yüzden aşağıdaki gibi bir CSRF PoC hazırlamak bizim için yeterli olacaktır.
Kodun ne iş yaptığını hızlıca anlatacak olursam sizin seneryodaki saldırgan olarak kendi sitenize yüklediğiniz bu form ilgili web uygulamasına POST requesti gönderecek ve body içerisinde email parametresi olarak sizin belirlediğiniz mail adresi yer alacak. Son olarak javascript ise yukarıdaki görselde gördüğümüz Update email butonunu tetikleyecektir. Böylece kurban sitenize tıkladığı anda başarıya ulaşmış olacaksınız.
Kodumuzu ilgili sunucuya upload etmek üzere web uygulamasının en başında bulunan Go to exploit server kısmından sunucuya gidiyoruz.
Karşılaştığımız bu arayüzde bizi bu lab için ilgilendiren tek kısım body bölümü. Paylaşmış olduğum kodu kendi lab linkiniz ile güncelleyerek body kısmına yapıştırabilirsiniz.
Daha sonra kodumuzu sunucuya yüklemek üzere Store seçeneğine tıklıyoruz.
Son olarak saldırıyı gerçekleştirmek adına Deliver exploit to victim seçeneğine tıkladığımızda labı başarı ile çözdüğümüzü görüyoruz.
Okuduğunuz için teşekkür ederim, işinize yaradıysa ne mutlu bana. Anlamadığınız veya takıldığınız bir yer olursa sormaktan çekinmeyin, elimden geldiğince yardımcı olmaya çalışırım.
Bugünkü konuda Portswigger firmasının kendini geliştirmek isteyenler için oluşturmuş olduğu Web Security Academy içerisinde bulunan CSRF vulnerability with no defenses adlı labın çözümünü anlatacağım.
İlgili lab linki: Lab: CSRF vulnerability with no defenses | Web Security Academy
Öncelikle bize verilen bilgilere bakacak olursak web uygulamasının kullanıcılardaki hesap bilgilerini görüntüledikleri sayfada bulunan email değiştirme fonksiyonunun CSRF ataklarına karşı zafiyetli olduğunu söylüyor ve test etmemiz için bize bir adet hesap sağlanmış. Bize verilen hesap bilgileri doğrutlusunda uygulamada giriş işlemi yaparak başlıyoruz.
Giriş yaptıktan sonra karşılaştığımız sayfa bu şekilde:
Rastgele bir mail adresi girerek Burp Suite ile giden requesti inceliyorum.
Giden request incelendiği zaman cookie veya body içerisinde giden bir csrf tokeni bulunmuyor. Bu yüzden aşağıdaki gibi bir CSRF PoC hazırlamak bizim için yeterli olacaktır.
HTML:
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://SIZIN-LAB-ID.web-security-academy.net/my-account/change-email" method="POST">
<input type="hidden" name="email" value="fahrettin@altay.tht" />
<input type="submit" value="Submit request" />
</form>
<script>
document.forms[0].submit();
</script>
</body>
</html>
Kodun ne iş yaptığını hızlıca anlatacak olursam sizin seneryodaki saldırgan olarak kendi sitenize yüklediğiniz bu form ilgili web uygulamasına POST requesti gönderecek ve body içerisinde email parametresi olarak sizin belirlediğiniz mail adresi yer alacak. Son olarak javascript ise yukarıdaki görselde gördüğümüz Update email butonunu tetikleyecektir. Böylece kurban sitenize tıkladığı anda başarıya ulaşmış olacaksınız.
Kodumuzu ilgili sunucuya upload etmek üzere web uygulamasının en başında bulunan Go to exploit server kısmından sunucuya gidiyoruz.
Karşılaştığımız bu arayüzde bizi bu lab için ilgilendiren tek kısım body bölümü. Paylaşmış olduğum kodu kendi lab linkiniz ile güncelleyerek body kısmına yapıştırabilirsiniz.
Daha sonra kodumuzu sunucuya yüklemek üzere Store seçeneğine tıklıyoruz.
Son olarak saldırıyı gerçekleştirmek adına Deliver exploit to victim seçeneğine tıkladığımızda labı başarı ile çözdüğümüzü görüyoruz.
Okuduğunuz için teşekkür ederim, işinize yaradıysa ne mutlu bana. Anlamadığınız veya takıldığınız bir yer olursa sormaktan çekinmeyin, elimden geldiğince yardımcı olmaya çalışırım.