
Descripción
This lab uses a serialization-based session mechanism and is vulnerable to authentication bypass as a result. To solve the lab, edit the serialized object in the session cookie to access the administrator
account. Then, delete the user carlos
.
You can log in to your own account using the following credentials: wiener:peter
Modifying serialized data types writeup
Iniciamos sesión en ‘My account’ con el usuario ‘wiener’ y la contraseña ‘peter’. Capturamos la petición al recargar la página y examinamos la cookie de sesión:

Al seleccionarla Burp Suite ya nos muestra que se encuentra codificada en Base64. Nos llevaremos la petición al ‘Repeater’ con Ctrl + R o Click derecho -> Send to Repeater.
Esta cookie funciona de la siguiente forma: ‘tipo_de_dato:tamaño:valor’. Realizaremos los siguientes cambios para hacernos pasar por un administrador:
- Cambiaremos ‘wiener’ por ‘administrator’.
- Cambiaremos el número de ‘6’ a ’13’ (cantidad de letras del nombre).
- Cambiaremos el valor de ‘access_token’ a ‘0’ sin comillas y su tipo de dato de ‘s’ a ‘i’.
Si obtenemos el siguiente mensaje es que habremos configurado algo mal en la cookie:
PHP Fatal error: Uncaught Exception: unserialize() failed in /var/www/index.php:4
Stack trace:
#0 {main}
thrown in /var/www/index.php on line 4
El resultado debe ser el siguiente:
O:4:"User":2:{s:8:"username";s:13:"administrator";s:12:"access_token";i:0;}
Al enviar la petición tendremos la sesión del administrador:

Ahora enviaremos una petición al endpoint ‘/admin/delete?username=carlos’ para borrarlo y completar el laboratorio:
