La división de respuesta HTTP es una forma de vulnerabilidad de la aplicación web , que resulta de la falla de la aplicación o su entorno para desinfectar adecuadamente los valores de entrada. Se puede utilizar para realizar ataques de secuencias de comandos entre sitios, desfiguración 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 ) de avance de línea (LF, ASCII 0x0A ) seguida del 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, el hecho de no eliminar CR y LF permite al atacante 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 es codificar las cadenas de URL antes de incluirlas en los encabezados HTTP , como Location o Set-Cookie .
Los ejemplos típicos de desinfección incluyen la conversión a números enteros o el reemplazo agresivo de expresiones regulares . Aunque la división de respuestas no es específica de PHP , el intérprete de PHP contiene protección contra el ataque desde la versión 4.4.2 y 5.1.2. [1]
Referencias
- ^ "PHP: PHP 5.1.2. Anuncio de lanzamiento" . El Grupo PHP . Consultado el 13 de noviembre de 2014 . CS1 maint: parámetro desalentado ( enlace )
enlaces externos
- Divide y vencerás: división de respuestas HTTP, ataques de envenenamiento de caché web y temas relacionados. Amit Klein, 2004.
- Aplicación web de destino vulnerable a la inyección de encabezado HTTP
- División de respuesta HTTP, el consorcio de seguridad de aplicaciones web
- Wapiti escáner de inyección de código abierto XSS, encabezado, SQL y LDAP
- Artículo de LWN
- CWE-113: Error al desinfectar las secuencias CRLF en los encabezados HTTP ('División de respuesta HTTP')
- Ataque de división de respuesta HTTP - OWASP
- Inyección CRLF - OWASP