
Descripción
The user management functions for this lab are powered by a GraphQL endpoint. The endpoint accepts requests with a content-type of x-www-form-urlencoded
and is therefore vulnerable to cross-site request forgery (CSRF) attacks.
To solve the lab, craft some HTML that uses a CSRF attack to change the viewer’s email address, then upload it to your exploit server.
You can log in to your own account using the following credentials: wiener:peter
.
Learn more about Working with GraphQL in Burp Suite.
Performing CSRF exploits over GraphQL writeup
Accedemos al laboratorio, iniciamos sesión en ‘My account’ e interceptamos el cambio de correo con el ‘Logger’:

Tendremos que modificar esta petición HTTP para que pueda cambiar el correo del usuario pero con codificación URL, no con un JSON. Para ello la modificamos de la siguiente forma:
Primero, con Click derecho -> Change request method. Usaremos esto dos veces para crear de nuevo una petición POST normal.
Segundo, añadiendo lo siguiente al cuerpo de la petición:

Codificaremos los valores de los parámetros a URL con Click derecho -> Convert selection -> URL -> URL-encode all characters. El resultado debe ser el siguiente:

Ahora que hemos modificado la petición HTTP para que pueda ser enviada por un formulario, darmos Click derecho -> Engagement tools -> Generate CRSF PoC.
Cambiaremos el email y enviaremos el código generado en ‘Go to exploit server’, en el ‘Body’, y al pulsar ‘Deliver exploit to victim’ habremos completado el laboratorio.

Nota: Hay que cambiar el correo por uno disponible para que funcione.