🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónAnalizadores XML: entidades externas y configuración segura
5 tareas · 45 min · Principiante
Con XML el dato del usuario no entra en una cadena: entra como documento completo, y lo que decide el daño es cómo está configurado el analizador que lo lee. Tinajal Servicios tiene cuatro servicios que analizan XML con tres bibliotecas distintas. Se leen los cuatro, el inventario y el registro de importaciones, y se escribe cuál queda bien y cuál no.
Objetivo de la sala
Con XML el dato del usuario no entra en una cadena: entra como documento completo, y lo que decide el daño es cómo está configurado el analizador que lo lee. Tinajal Servicios tiene cuatro servicios que analizan XML con tres bibliotecas distintas. Se leen los cuatro, el inventario y el registro de importaciones, y se escribe cuál queda bien y cuál no.Un documento XML puede traer, antes de su contenido, una declaración de tipo de documento: un bloque que define entidades, es decir, nombres que el analizador reemplaza por un texto mientras lee. Las entidades pueden ser internas —el texto está ahí mismo— o apuntar a un recurso externo, y entonces el analizador, si está configurado para hacerlo, va a buscarlo antes de entregar el árbol al programa.
Ahí está el fallo: el programa cree que recibe datos y en realidad le ha dado al documento la potestad de decirle qué otros recursos leer. MITRE lo recoge como CWE-611, de nivel base, sobre la restricción indebida de la referencia a entidades externas. Las consecuencias típicas no son un error de sintaxis, sino lecturas de recursos que el servicio no debería tocar, peticiones salientes que nadie pidió y procesos que se quedan esperando.
La configuración segura, en la hoja de referencia de OWASP sobre el tema, se resume en rechazar la declaración de tipo de documento cuando el formato no la necesita, y, si de verdad la necesita, no resolver nada externo. Cada biblioteca lo expresa a su manera: una característica del constructor en Java, opciones de carga en las bibliotecas basadas en libxml, o una biblioteca envoltorio en Python que ya viene con la decisión tomada.
Responde para continuar
¿Qué hace peligrosa a una entidad externa en un documento que llega de fuera?
Ver pista de ayuda
Quién decide lo que el analizador va a buscar.
Abre el laboratorio y lee la carpeta tinajal-xml. El cargador de reportes de medición usa una biblioteca basada en libxml y pasa dos opciones al cargar el documento. Una de ellas es la que hace que el analizador reemplace las entidades por lo que declaran en vez de dejarlas intactas.
Responde para continuar
¿Qué opción de carga del cargador de reportes sustituye las entidades del documento? Escríbela tal como aparece en el código.
Ver pista de ayuda
Son dos opciones unidas; la otra tiene que ver con cargar la definición.
Un informe que solo lista lo roto obliga al equipo a inventar la solución. En este repositorio no hace falta: uno de los importadores ya configura su analizador para rechazar la declaración de tipo de documento, y sirve de modelo para el otro que usa la misma biblioteca.
Responde para continuar
¿Qué archivo del repositorio ya rechaza la declaración de tipo de documento y puede servir de modelo? Escribe el nombre del archivo tal como aparece en la carpeta.
Ver pista de ayuda
Compara los dos archivos que usan la misma fábrica de constructores.
Para priorizar hace falta saber cuántos puntos hay, no cuántos se vieron fallar. Revisa los cuatro servicios del inventario y cuenta los que analizan XML sin rechazar la declaración de tipo de documento, vengan de donde vengan sus archivos.
Responde para continuar
¿Cuántos de los servicios del inventario analizan XML sin rechazar la declaración de tipo de documento? Escribe solo el número.
Ver pista de ayuda
Uno de los cuatro usa una biblioteca que trae la decisión tomada; otro la rechaza a mano.
Dos servicios comparten el mismo defecto de configuración y no merecen la misma prioridad. Uno recibe archivos que suben los contratistas desde fuera; el otro recibe el archivo del banco por un canal cerrado, y ahí el defecto es una deuda que hay que cerrar, no una puerta abierta. El informe dice las dos cosas: el mismo arreglo para ambos, distinto plazo.
Responde para continuar
¿Qué justifica darle más prioridad al cargador de reportes que al importador de facturas de proveedores?
Ver pista de ayuda
Pesa quién entrega el archivo y qué hace el analizador con él.
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.