User ID controlled by request parameter, with unpredictable user IDs – PortSwigger Write Up

En este post vamos a estar resolviendo el laboratorio de PortSwigger: “User ID controlled by request parameter, with unpredictable user IDs.”


Según entramos al laboratorio vemos una tienda con un enlace para poder loguearnos, pero nosotros queremos saber si hay algún panel de administración donde poder loguearnos


Vamos a loguearnos con el user wiener y las password peter, seguidamente vamos a cambiar el correo de la cuenta a uno que nosotros queramos


Seguidamente vamos a activar el burpsuite


Y ya teniendo el burpsuite listo, vamos a enviar la petición para loguearnos con el usuario.


Vamos a ver que nos devuelve la petición al loguearnos con el user wiener. En este caso vamos a enviar la petición dándole a forward y vemos que el usuario wiener tiene un ID identificativo.



Al loguearnos en la URL aparece el id de nuestro usuario el que hemos visto antes, el mismo y es identificativo y único para cada usuario. Asique vamos a ver si podemos de alguna forma obtener el ID de un usuario distinto al nuestro y poder loguearnos de alguna forma sin saber su password.


Si volvemos a la página principal al ser un blog donde los usuarios suben sus posts, si pulsamos en un post cualquiera podemos observar quien lo ha posteado y si pulsamos en el perfil de ese usuario, podemos ver en la URL su respectivo ID user.


Cambiamos el user ID que tenemos en nuestro usuario logueado para cambiarlo por el administrator y ver si de esa forma podemos loguearnos con el usuario admin.



Si enviamos la petición… BINGO! hemos podido loguearnos y autenticarnos con el usuario administrator y nos aparece su API Key que es única para cada usuario. En este caso hemos conseguido lo que queríamos que era loguearnos mediante el user ID desde un usuario a otro. Pero lo que tenemos que hacer para completar el laboratorio es conseguir el userID y loguearnos con el usuario Carlos.


Asi que vamos a repetir el proceso que hemos hecho anteriormente, vamos a buscar un post que haya publicado Carlos, si nos fijamos al pulsar en el user Carlos en la URL aparece su User ID directamente, así que vamos a copiarlo para poder hacer uso de el en la petición de burpsuite.



Volvemos a enviar la petición de login y cuando nos aparezca el User ID de nuestro usuario, vamos a cambiarlo por el de Carlos para ver si funciona y nos logueamos tal y como hemos hecho con el usuario Administrator.


Listo, finalmente nos hemos logueado como user Carlos y la respuesta del laboratorio es la API Key de Carlos así que copiamos y pegamos en la respuesta al laboratorio.



Laboratorio resuelto.



¡Un saludo y espero que os sirva de apoyo!