¿Es posible realizar una inyección de encabezado HTTP si se eliminan CR / LF?

9

En la respuesta HTTP hay el siguiente encabezado con contenido controlado por el atacante:

Content-Disposition:attachment; filename="attacker_controlled.html"

Los únicos caracteres que no pueden aparecer en el valor controlado por el atacante son [CR] y [LF] (no pueden aparecer en ninguna combinación). En todos los lugares donde leí acerca de la inyección del encabezado HTTP, se informó sobre la inyección de esos caracteres.

¿Es posible realizar una inyección de cabecera HTTP o algún otro ataque dañino sin CRLF?

    
pregunta Andrei Botalov 13.07.2012 - 19:47
fuente

2 respuestas

4

Depende de lo que quieras decir con despojado. (El método string.strip() de python solo elimina las ocurrencias desde el principio y el final, lo que no detiene la inyección de CRLF). Si reemplaza todas las ocurrencias "\ r \ n", entonces aún es vulnerable a HTTP división de respuesta. Esto se debe a que cada cliente y servidor http que conozco también reconoce el carácter "\ n" solo como un delimitador. Aunque en este caso lo único que nos importa son los navegadores.

La mejor manera de reemplazar siempre todas las apariciones de la nueva línea "\ n" con nada "" y la "\ r" con nada "", por separado para una buena medida. Nunca he visto una implantación del protocolo HTTP que solo busque "\ r", por lo que sé que esto no tiene ningún impacto en la seguridad, pero debería hacerlo de todos modos por una buena medida. Si también te preocupan los atributos HTTP, también debes quitar "", "\" "y"; ", pero eso también depende de dónde se encuentre la cadena controlada por el atacante en el encabezado http.

    
respondido por el rook 13.07.2012 - 20:05
fuente
3

No conozco ninguna forma de realizar una inyección de encabezado HTTP, en las condiciones que usted menciona.

Sin embargo, existen otros riesgos, como los ataques de paso de ruta, la descarga de contenido activo o la sobrescritura de archivos estándar del sistema. Recomiendo leer RFC 6266, Sección 4.3 y RFC 2183, Section 5 , que describe algunos de los riesgos. (RFC 6266 es el que define el encabezado Content-Disposition). Consulte también esta publicación de blog para discusión sobre los riesgos de XSS, si permite que el atacante controle tanto el nombre del archivo como el contenido del mismo.

    
respondido por el D.W. 16.07.2012 - 02:41
fuente

Lea otras preguntas en las etiquetas