🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónFijación de sesión leída en el código
5 tareas · 35 min · Principiante
El portal donde los compradores de Facturas Sativanorte consultan sus facturas corre en PHP y es más viejo que el panel. Una compradora entró con su correo y su clave desde un enlace que le llegó por correo, y al día siguiente alguien la llamó citando sus datos. Con autorización escrita te entregan la configuración de sesión de PHP, la página de ingreso y el registro de esa mañana. Se lee cómo pudo pasar sin que nadie conociera su clave.
Objetivo de la sala
El portal donde los compradores de Facturas Sativanorte consultan sus facturas corre en PHP y es más viejo que el panel. Una compradora entró con su correo y su clave desde un enlace que le llegó por correo, y al día siguiente alguien la llamó citando sus datos. Con autorización escrita te entregan la configuración de sesión de PHP, la página de ingreso y el registro de esa mañana. Se lee cómo pudo pasar sin que nadie conociera su clave.En el robo de una sesión, alguien obtiene un identificador que la aplicación ya le dio a otra persona. En la fijación ocurre al revés: alguien consigue que la víctima use un identificador que él ya conoce, y espera a que ella se autentique con él. Si la aplicación no cambia el identificador al ingresar, la sesión autenticada queda con un valor que ambos conocen. MITRE la cataloga como CWE-384.
Para que funcione hacen falta dos condiciones en la aplicación: que acepte un identificador puesto desde fuera (por ejemplo, en la URL, o uno que ella nunca generó) y que lo mantenga al pasar a autenticada. Basta con quitar cualquiera de las dos para cortarla, y lo correcto es quitar ambas.
Responde para continuar
¿Qué distingue la fijación de sesión del robo de una sesión?
Ver pista de ayuda
Piensa en quién conoce el valor primero.
PHP puede aceptar o rechazar un identificador que llega en la petición pero que él nunca creó. Con la opción adecuada encendida, si el valor no corresponde a una sesión existente, emite uno nuevo en lugar de adoptarlo. La documentación de PHP recomienda encenderla en todos los sitios. Otras dos opciones deciden si el identificador puede llegar por la URL además de por la cookie.
Abre php-sesion.ini en el laboratorio.
Responde para continuar
¿Qué directiva, puesta en 0, deja que el portal adopte un identificador que él no creó? Escribe su nombre completo.
Los identificadores que genera el portal tienen una forma fija, descrita en encargo.txt. Un valor con otra forma no salió del portal. Busca en registro-portal.txt el que no encaja.
Responde para continuar
¿Qué identificador, que no tiene la forma de los que genera el portal, aparece usado desde dos direcciones distintas?
En entrar.php la sesión recibe los datos de la compradora, pero falta algo entre la verificación de la clave y la redirección. Con eso en mente, sigue el identificador del registro después del POST de las 11:41:20.
Responde para continuar
¿Desde qué dirección se usó la sesión de la compradora CMP-3307 después de que ella ingresara?
El equipo del portal quiere una sola corrección. Recuérdales que hay dos condiciones y elige el conjunto que corta ambas.
Responde para continuar
¿Qué recomiendas para el portal de compradores?
Ver pista de ayuda
Una condición es aceptar un valor de fuera; la otra, conservarlo al ingresar.
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.