Blog

¿En qué consiste un ataque CRLF?

En informática el término CRLF se refiere a la combinación de dos códigos de control: CR (retorno de carro) y LF (salto de línea), uno detrás del otro para crear una nueva línea de código (normalmente).

Estamos acostumbrados a notar la terminación de una línea, pero los sistemas operativos DOS y Microsoft Windows siguen utilizando CRLF como marcador de nueva línea, en Linux/UNIX solo requieren un LF. En el protocolo HTTP, la secuencia CR-LF siempre es usada para acabar una línea.

El ataque de inyección CRLF se da cuando alguien logra mandar un CRLF a una aplicación, normalmente cambiando un parámetro HTTP o URL.

Ejemplo de ataque CRLF

Según la forma en la que se desarrolle una aplicación, esto puede llegar a ser un problema sin más o un error de seguridad muy importante, nos vamos a centrar en el error grave.

Vamos a suponer que se usa un archivo para leer / escribir datos en un registro y que un atacante ha logrado colocar un CRLF, esto significa que puede controlar las funciones de la aplicación web pudiendo modificar el contenido que genera el servidor web en nuestro navegador. A partir de ahí el atacante puede aprovecharse de la vulnerabilidad de muchas maneras.

Protección ante un ataque CRLF

El método más eficaz para este tipo de ataques es utilizar filtros sobre los datos que entran a nuestro servidor o a nuestra web y examinar las variables que puedan aprovecharse de CRLF.