CSRF with broken Referer validation writeup

Descripción

This lab’s email change functionality is vulnerable to CSRF. It attempts to detect and block cross domain requests, but the detection mechanism can be bypassed.

To solve the lab, use your exploit server to host an HTML page that uses a CSRF attack to change the viewer’s email address.

You can log in to your own account using the following credentials: wiener:peter

CSRF with broken Referer validation writeup

Accederemos a ‘My account’, iniciaremos sesión con el usuario ‘wiener’ y la contraseña ‘peter’. Capturaremos la petición del cambio de correo electrónico con el ‘Logger’ y la enviaremos al ‘Repeater’ con Ctrl + R o Click derecho -> Send to Repeater. Allí daremos Click derecho -> Engagement tools -> Generate CSRF PoC. Copiaremos el resultado y nos lo llevaremos al ‘Body’ del ‘Exploit server’. Al ver nosotros el script nos mostrará el siguiente mensaje:

Si interactuamos con la petición del ‘Repeater’, vemos que borrar el parámetro ‘Referrer’ nos devolverá el mismo error. Sin embargo, añadir un subdominio nos permitirá enviarlo:

Con esto podemos suponer que el servidor sólo busca en ‘Referrer’ ‘0a020013046cb77b82f9700800b70047’. Realizaremos los siguientes cambios en el script:

  1. Añadir al header: ‘Referrer-Policy: unsafe-url’, necesario en los nuevos navegadores para cuando la URL del ‘Referrer’ no sea segura.
  2. Introducir en el push ‘/?0a020013046cb77b82f9700800b70047.web-security-academy.net’, para que la URL esté en el ‘Referrer’.

Al pulsar ‘Deliver exploit to victim’ habremos completado el laboratorio:

Deja una respuesta

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