La división de respuestas HTTP es una vulnerabilidad de las aplicaciones web que se produce cuando la aplicación o su entorno no validan correctamente los valores de entrada. Puede utilizarse para realizar ataques de secuencias de comandos entre sitios ( XSS) , desfiguración de páginas web entre usuarios, envenenamiento de caché web y exploits similares .
El ataque consiste en hacer que el servidor imprima una secuencia de retorno de carro (CR, ASCII 0x0D ) y salto de línea (LF, ASCII 0x0A ) seguida de contenido proporcionado por el atacante en la sección de encabezado de su respuesta, generalmente incluyéndolos en los campos de entrada enviados a la aplicación. Según el estándar HTTP (RFC 2616), los encabezados están separados por un CRLF y los encabezados de la respuesta están separados de su cuerpo por dos. Por lo tanto, si no se eliminan los CR y los LF, el atacante puede establecer encabezados arbitrarios, tomar el control del cuerpo o dividir la respuesta en dos o más respuestas separadas; de ahí el nombre.
Prevención
La solución genérica consiste en codificar las cadenas de texto en formato URL antes de incluirlas en los encabezados HTTP, como Location o Set-Cookie .
Ejemplos típicos de saneamiento incluyen la conversión a enteros o el reemplazo agresivo de expresiones regulares . La mayoría de los lenguajes de scripting y entornos de ejecución modernos del lado del servidor, como PHP desde la versión 5.1.2 [ 1 ] y Node.js desde la 4.6.0 (las versiones anteriores lo admitían, pero la protección podía eludirse, lo que se descubrió en 2016) [ 2 ] , así como los marcos web , como Django desde la versión 1.8.4 [ 3 ], admiten el saneamiento de respuestas HTTP contra este tipo de vulnerabilidad.
Referencias
- ↑ "PHP: Anuncio de lanzamiento de PHP 5.1.2". The PHP Group . Consultado el 13 de noviembre de 2014 .
- ↑ "CVE-2016-5325 | Base de datos de vulnerabilidades de Snyk" . Obtenga más información sobre debian:9 con la base de datos de vulnerabilidades de código abierto de Snyk . Consultado el 16 de enero de 2024 .
- ↑ "CVE-2015-5144 | Base de datos de vulnerabilidades de Snyk" . Obtenga más información sobre pip con la base de datos de vulnerabilidades de código abierto de Snyk . Consultado el 16 de enero de 2024 .
Enlaces externos
- Divide y vencerás: división de respuestas HTTP, ataques de envenenamiento de caché web y temas relacionados. Amit Klein, 2004.
- División de respuestas HTTP, Consorcio de Seguridad de Aplicaciones Web
- Escáner de inyección XSS, de encabezado, SQL y LDAP de código abierto Wapiti
- Artículo de LWN
- CWE-113: Fallo en la sanitización de secuencias CRLF en encabezados HTTP ('División de respuesta HTTP')
- Ataque de división de respuesta HTTP - OWASP
- Inyección CRLF - OWASP
- vulnerabilidades de seguridad web
- Encabezados del Protocolo de Transferencia de Hipertexto
- Fragmentos de la World Wide Web