Lab 4: JWT authentication bypass via jwk header injection

https://portswigger.net/web-security/jwt/lab-jwt-authentication-bypass-via-jwk-header-injection

La peticion de login es:

POST /login HTTP/2
Host: 0ab400c804f23b9e804ed1ef006e00a7.web-security-academy.net
Cookie: session=
Content-Length: 68
Cache-Control: max-age=0
Sec-Ch-Ua: "Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Accept-Language: es-CO
Upgrade-Insecure-Requests: 1
Origin: https://0ab400c804f23b9e804ed1ef006e00a7.web-security-academy.net
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://0ab400c804f23b9e804ed1ef006e00a7.web-security-academy.net/login
Accept-Encoding: gzip, deflate, br
Priority: u=0, i
Connection: keep-alive

csrf=gBFaqe25uUIop5StZfDiMJCbaOCOupXd&username=wiener&password=peter

La respuesta es:

El JWT tiene la siguiente estructura:

Luego de lo anterior generamos una RSA Key con la extension JWT Editor:

Luego de la creacion queda asi:

Y luego simplemente utilizamos la extension:

Esto da como resultado acceso exitoso:

Utilizando JWT_Tool

Capturamos el token y ejecutamos lo siguiente:

El JWT previo permite autorizarnos como admin:

La generacion de este JWT tiene la siguiente sintaxis:

Última actualización

¿Te fue útil?