Ataques de XSS UTF-7 en navegadores modernos

14

Recientemente he leído artículo de Ned Batchelders sobre los ataques de XSS de UTF-7 . Probé sus ejemplos , pero no conseguí que ningún ataque UTF-7 funcionara en los navegadores modernos. Probé versiones recientes de Firefox, Chrome y Safari hasta ahora.

Sé que Chrome tiene algunos mecanismos de prevención de ataques XSS, pero según mi experiencia, Firefox tiene un mecanismo más "generoso" para ejecutar javascript, incluso cuando está roto. Sin embargo, ninguno de estos navegadores parece seleccionar el conjunto de caracteres UTF-7. de forma predeterminada, si el sitio lo usa (pero no lo declara explícitamente)

Entonces: ¿Alguien sabe por qué esto ya no funciona? Parece que el mecanismo de detección de UTF-7 ha cambiado, tal vez incluso por razones de seguridad. ¿Pueden los ataques UTF-7 seguir dirigiéndose a los navegadores modernos si no hay forma de cambiar la declaración del juego de caracteres dentro del documento o manipular los encabezados?

    
pregunta Michael Helwig 22.12.2013 - 10:02
fuente

2 respuestas

13

Este exploit solo es posible en versiones antiguas de Internet Explorer. Los navegadores modernos no detectarán automáticamente la codificación como UTF-7.

OWASP : -

  

Esto no funciona en ningún navegador moderno sin cambiar el tipo de codificación, por lo que está marcado como totalmente incompatible.

Wikipedia : -

  

Para mitigar este problema, los sistemas deben realizar una decodificación antes de la validación y deben evitar intentar detectar automáticamente UTF-7.   Las versiones anteriores de Internet Explorer pueden ser engañadas para interpretar la página como UTF-7.

    
respondido por el SilverlightFox 23.12.2013 - 11:29
fuente
5

Chrome y Firefox parece que ya no admite UTF-7 en ningún formato. La especificación de HTML5 dice :

  

Los agentes de usuario deben admitir las codificaciones definidas en el estándar de codificación WHATWG. Los agentes de usuario no deben admitir otras codificaciones.

     

Los agentes de usuario no deben admitir las codificaciones CESU-8, UTF-7, BOCU-1 y SCSU. [CESU8] [ UTF7] [BOCU1] [SCSU]

     

El soporte para codificaciones basadas en EBCDIC está especialmente desaconsejado. Esta codificación rara vez se utiliza para el contenido web público. El soporte para UTF-32 también está especialmente desaconsejado. Esta codificación rara vez se utiliza, y con frecuencia se implementa incorrectamente.

    
respondido por el Jason Gross 30.09.2014 - 01:01
fuente

Lea otras preguntas en las etiquetas