Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Saltos de línea en cabeceras y en registros

5 tareas · 35 min · Principiante

Hay dos formatos del oficio donde el fin de línea significa «aquí empieza otra cosa»: la cabecera de una respuesta HTTP y la línea de un registro de texto. Un valor que llega de fuera y se pega dentro de cualquiera de los dos puede dejar de ser un valor y convertirse en un registro o una cabecera más. Tinajal Servicios entrega sus dos registradores, el controlador de solicitudes, la configuración de su servidor web y el registro de un día que la auditoría no reconoce.

0 de 5 · 0%

Objetivo de la sala

Hay dos formatos del oficio donde el fin de línea significa «aquí empieza otra cosa»: la cabecera de una respuesta HTTP y la línea de un registro de texto. Un valor que llega de fuera y se pega dentro de cualquiera de los dos puede dejar de ser un valor y convertirse en un registro o una cabecera más. Tinajal Servicios entrega sus dos registradores, el controlador de solicitudes, la configuración de su servidor web y el registro de un día que la auditoría no reconoce.

En el protocolo HTTP las cabeceras se separan unas de otras con un fin de línea, y una línea en blanco marca dónde empieza el cuerpo. En un registro de texto la convención es la misma: una línea, un evento. En los dos casos el separador es un carácter que puede aparecer dentro de un valor, y ahí está el problema: si el programa pega el valor sin normalizarlo, el formato no tiene forma de saber que esa línea nueva no es suya.

En las cabeceras, la situación mejoró sola: los servidores y las bibliotecas modernas rechazan o descartan los caracteres de control en el valor de una cabecera, así que la partición de respuestas —CWE-113 en el catálogo de MITRE, de nivel variante— ya no suele prosperar. Lo que queda vivo es el eco: una cabecera que devuelve un valor del cliente sigue siendo superficie, aunque no parta nada.

En los registros no hay red de seguridad equivalente, y el daño es más callado: quien revisa el registro ve eventos que nunca ocurrieron, con el nombre de quien le convenga al que los escribió, y la investigación posterior parte de una historia falsa. MITRE lo recoge como CWE-117, de nivel base, para la salida sin neutralizar que se escribe en un registro.

Responde para continuar

¿Por qué un registro de texto contaminado es un problema de seguridad y no solo de presentación?

Ver pista de ayuda

Piensa para qué se usa un registro semanas después.

Abre el laboratorio y lee la carpeta tinajal-saltos. El controlador de solicitudes valida dos campos y escribe uno de ellos en el registro de texto «con sus palabras». Ese es el que viaja íntegro hasta la línea del registro.

Responde para continuar

¿Qué campo de la solicitud se escribe en el registro tal como lo recibió el servidor? Escribe el nombre del campo tal como aparece en el código.

Ver pista de ayuda

De los dos campos validados, es el de texto largo.

El proyecto tiene dos registradores: uno arma una línea de texto pegando los valores con un separador, y otro codifica un evento por línea con cada valor en su propio campo. Identifica el primero.

Responde para continuar

¿Qué archivo arma cada línea del registro pegando los valores recibidos con un separador? Escribe el nombre del archivo tal como aparece en la carpeta.

Ver pista de ayuda

El otro registrador del proyecto codifica el evento antes de escribirlo.

El registro del 14 de octubre tiene líneas que empiezan directamente por el separador, sin fecha ni hora propias: son la continuación de la línea anterior, que se partió al escribirse. Cuéntalas; son la medida del hallazgo y el primer dato que pide la auditoría.

Responde para continuar

¿Cuántas líneas del registro del 14 de octubre no tienen marca de tiempo propia? Escribe solo el número.

Ver pista de ayuda

Recorre el archivo buscando líneas que no empiecen por una fecha.

El arreglo del registro es de formato: un evento por línea codificado por una biblioteca, con cada valor en su campo, que es justo lo que ya hace el otro registrador del proyecto. En el servidor web el caso es distinto: las dos cabeceras que repiten un valor del cliente no parten nada porque el servidor descarta los caracteres de control, así que el hallazgo no es una partición de respuesta; es una superficie heredada que conviene retirar porque nadie la usa.

Responde para continuar

¿Cómo debe redactarse el hallazgo de las dos cabeceras que repiten un valor del cliente?

Ver pista de ayuda

Honestidad del hallazgo: di lo que la evidencia sostiene, ni más ni menos.

Inicia sesión para registrar tus puntos y progreso en el ranking.

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