🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónDeserializacion insegura
4 tareas · 20 min · Principiante
La subida insegura de la sala anterior confia en lo que el usuario sube. La deserializacion insegura confia en algo mas sutil: un dato del usuario que la aplicacion reconstruye como un objeto, dandole forma y comportamiento a partir de un texto que controla quien lo envia. En Depostock una cookie se reconstruye con unserialize sin validar. Se localiza en el codigo, se clasifica como deserializacion insegura y se arregla; no se fabrica ningun objeto.
Objetivo de la sala
La subida insegura de la sala anterior confia en lo que el usuario sube. La deserializacion insegura confia en algo mas sutil: un dato del usuario que la aplicacion reconstruye como un objeto, dandole forma y comportamiento a partir de un texto que controla quien lo envia. En Depostock una cookie se reconstruye con unserialize sin validar. Se localiza en el codigo, se clasifica como deserializacion insegura y se arregla; no se fabrica ningun objeto.Serializar es convertir un objeto en texto para guardarlo o enviarlo; deserializar es el camino de vuelta, reconstruir el objeto desde ese texto. El problema aparece cuando el texto lo controla el usuario. En sesion.php de Depostock la cookie pref se pasa a unserialize, que rearma un objeto a partir de lo que venga en la cookie. Como el usuario decide el contenido de su cookie, decide que objeto se reconstruye y con que datos, y eso abre comportamientos que el programa nunca previo. El auditor lo reconoce por el par origen no confiable mas reconstruccion de objeto.
Lee el archivo y pregunta: de donde sale el texto que se reconstruye como objeto?
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
En sesion.php, por que es peligroso el unserialize de la cookie?
Ver pista de ayuda
Piensa quien decide el contenido de una cookie y que se construye a partir de ella.
El fallo no esta en guardar preferencias en una cookie, sino en reconstruir un objeto a partir de un dato que el usuario puede cambiar a su gusto. Una cookie viaja en cada peticion y quien la envia puede reescribirla entera. Tratar ese texto como la fuente para armar un objeto es confiar en el usuario para algo que el programa deberia controlar. El auditor marca el origen —la cookie, controlada por el usuario— como la raiz del problema, no la funcion en si.
Es la misma leccion del modulo de inyeccion: lo que viene de fuera es dato, no instruccion ni objeto, hasta que se valida.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Cual es la raiz del fallo de sesion.php?
Ver pista de ayuda
El problema no es leer la cookie, es construir un objeto de confianza a partir de ella.
El arreglo es no deserializar datos del usuario con el mecanismo nativo. Para guardar preferencias basta un formato de datos simple como JSON, que produce valores —no objetos con comportamiento— y se interpreta sin reconstruir clases. Si ademas hace falta asegurar que la cookie no se manipulo, se firma con una clave del servidor y se rechaza si la firma no cuadra. El auditor clasifica el fallo como deserializacion insegura (CWE-502) y recomienda esas dos piezas: JSON para datos, firma para integridad.
Cifrar la cookie no arregla el fallo de fondo: el problema no es que se lea, es que se reconstruya como objeto.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Que arreglo recomiendas para el unserialize de sesion.php?
Ver pista de ayuda
El arreglo cambia como se guarda el dato (valores, no objetos) y anade integridad, no solo confidencialidad.
La deserializacion insegura tiene su propia nota de triaje en Depostock, con el archivo, el origen del dato, la clasificacion CWE-502 y el arreglo. Abrela en el laboratorio, confirma que describe el unserialize de la cookie en sesion.php y lee el codigo del hallazgo con el que cierra.
Esta tarea se hace en el laboratorio
Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.
Responde para continuar
Abre la nota de triaje de la deserializacion insegura de Depostock (carpeta auditoria) y escribe el codigo del hallazgo que la cierra.
Ver pista de ayuda
Es la nota del unserialize de la cookie en sesion.php, no la de la subida de archivos.
Preparando el escritorio…
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.