🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónXSS almacenado
4 tareas · 20 min · Principiante
El XSS reflejado de la sala anterior necesita que alguien haga clic en un enlace preparado. El almacenado es peor: la entrada sin codificar se guarda en la aplicacion y se le sirve a cada visitante que abre la pagina, sin que nadie tenga que caer en una trampa. En Boletia los comentarios se guardan y se pintan sin codificar. Se localiza, se clasifica y se arregla; no se escribe ningun codigo de ataque.
Objetivo de la sala
El XSS reflejado de la sala anterior necesita que alguien haga clic en un enlace preparado. El almacenado es peor: la entrada sin codificar se guarda en la aplicacion y se le sirve a cada visitante que abre la pagina, sin que nadie tenga que caer en una trampa. En Boletia los comentarios se guardan y se pintan sin codificar. Se localiza, se clasifica y se arregla; no se escribe ningun codigo de ataque.El XSS reflejado vive en un enlace: solo afecta a quien hace clic en una URL preparada. El almacenado se guarda en la base de la aplicacion —aqui, un comentario— y se le sirve a todo el que abre la pagina donde se pinta. No hace falta enganar a nadie para que visite un enlace raro: la pagina normal ya trae el marcado dentro. Por eso el auditor le pone, a igualdad de lo demas, mas severidad que al reflejado.
Mira de donde sale el texto que se pinta: no de la URL de esta visita, sino de algo que se guardo antes.
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
Por que un XSS almacenado suele ser mas grave que uno reflejado?
Ver pista de ayuda
Piensa a cuanta gente llega cada variante y quien tiene que hacer clic en algo.
El reflejo esta en comentarios.php: el texto del comentario se guarda tal cual y, cuando se listan los comentarios, se imprime en el HTML sin codificar. El punto donde se corrige no es la escritura sino la lectura: la salida se codifica cuando se pinta, porque el mismo dato puede ser legitimo guardado y peligroso al mostrarse. Codificar solo a la entrada deja huecos —hay sitios donde el dato aparece sin pasar por esa puerta—; codificar al pintar cubre cada salida.
El auditor confirma el fallo con la evidencia: la pagina guardada muestra que el comentario volvio dentro del HTML sin convertirse en texto.
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 comentarios.php, donde debe actuar el arreglo para cerrar el XSS almacenado?
Ver pista de ayuda
El mismo dato puede ser inofensivo guardado y peligroso al mostrarse; se codifica donde se muestra.
A veces el campo si debe aceptar algo de formato —negritas, enlaces— y codificar todo lo rompe. Para ese caso el arreglo no es codificar a ciegas sino sanear con una libreria que deje pasar una lista blanca de etiquetas seguras y elimine el resto, en especial el script. El auditor distingue los dos casos: texto plano se codifica entero; texto con formato se sanea con lista blanca. Lo que nunca se hace es confiar en el navegador para que decida que es seguro.
Escribir una lista negra de etiquetas peligrosas a mano es la trampa de siempre: siempre falta una forma de colar un script.
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
El campo de comentario debe permitir negritas y enlaces. Cual es el arreglo correcto?
Ver pista de ayuda
Con formato permitido no se codifica entero; se filtra por lo que SI se permite, no por lo que se prohibe.
El XSS almacenado tiene su propia nota de triaje en Boletia, con el archivo, el parametro, la clasificacion CWE-79 y el arreglo. Abrela en el laboratorio, confirma que describe el comentario que se pinta sin codificar 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 del XSS almacenado de Boletia (carpeta auditoria) y escribe el codigo del hallazgo que la cierra.
Ver pista de ayuda
Es la nota del comentario guardado, no la del buscador reflejado ni la del script del perfil.
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.