Lab #5: Exploiting server-side parameter pollution in a REST URL

https://portswigger.net/web-security/api-testing/server-side-parameter-pollution/lab-exploiting-server-side-parameter-pollution-in-rest-url

Se identifica la siguiente peticion:

POST /forgot-password HTTP/2
Host: 0a460002034d6d7685a0a5c800120085.web-security-academy.net
Cookie: session=PIGiXKDD6s1t7kAZlnMyX5bdV6bi3NW5
Content-Length: 61
Sec-Ch-Ua-Platform: "Windows"
Accept-Language: es-CO,es;q=0.9
Sec-Ch-Ua: "Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"
Content-Type: x-www-form-urlencoded
Sec-Ch-Ua-Mobile: ?0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Accept: */*
Origin: https://0a460002034d6d7685a0a5c800120085.web-security-academy.net
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://0a460002034d6d7685a0a5c800120085.web-security-academy.net/forgot-password
Accept-Encoding: gzip, deflate, br
Priority: u=1, i
Connection: keep-alive

csrf=pp6T3REKp1cmjtyvUqrHfBrfrHgatN0V&username=administrator

Se inicia añadiendo un caracter al finalizar la peticion:

Y la peticion responde:

La respuesta previa tambien se replica con el # en formato codificado en url:

Al igual que usando:

Y lo interesante fue realizar esta peticion:

Y respondio asi:

Pero al retroceder un directorio:

Si retorno un error:

Se intento con:

Y genero un error:

Y al retroceder aun mas salio otro error:

El error fue:

Si usamos un intruder se identifica un archivo:

Y lo anterior responde asi:

Analizando lo anterior, se envia la siguiente peticion:

Y esto entrego una respuesta interesante:

Debido al error modificamos el payload especificando a email:

Y lo anterior respondio asi:

Durante el analisis inicial se identifico:

Y el codigo aqui era:

Debido a la linea:

Se decide enviar la siguiente peticion:

Pero se obtuvo otra vez este error:

Asi que se decide enviar la peticion modificando el payload:

Y esto nos respondio asi:

Y luego simplemente construimos la peticion para restablecer la contraseña y finalizar el reto:

Última actualización

¿Te fue útil?