tipos MIME que permiten XSS en navegadores modernos

5

Supongamos que es posible alojar archivos arbitrarios en goodguys.com , que se entregan con un tipo MIME controlado por el atacante y X-Content-Type-Options=nosniff . ¿Qué tipos de MIME permiten XSS cuando se usan como fuente de un iframe, destino de un enlace o de otras formas en navegadores razonablemente modernos? Sé de al menos text/html y image/svg+xml , pero ¿hay otros?

Editar: quiero enfatizar que un enfoque de lista negra basado en tipos MIME no es una buena idea. La motivación para la pregunta es que podría usar respuestas interesantes como argumentos convincentes a favor de las listas blancas de MIME.

    
pregunta Uncaught 20.08.2017 - 12:37
fuente

1 respuesta

2

No podrá reunir una lista completa de tipos MIME peligrosos.

Si bien es sencillo bloquear text/html , text/xml , image/svg+xml , etc., hay muchos tipos MIME heredados o específicos de proveedores poco conocidos que no son muy conocidos y podrían funcionar en algunos navegadores. Por ejemplo, el tipo MIME application/vnd.wap.xhtml+xml se entiende como XML en Firefox, mientras que no se activará en Chrome en absoluto. Prueba de concepto:

data:application/vnd.wap.xhtml+xml,<x:script xmlns:x="http://www.w3.org/1999/xhtml">alert(1)</x:script>

Además, hay tipos MIME que no conducen inmediatamente a XSS pero tienen efectos secundarios. Por ejemplo, un atacante podría querer engañar a un usuario para que instale un complemento de Firefox al proporcionar contenido con un tipo MIME application/x-xpinstall . (Este ataque tendrá algunos obstáculos adicionales, pero entiendes la idea).

Finalmente, los proveedores externos también pueden registrar sus propios tipos MIME personalizados (piense en los applets de Flash con application/x-shockwave-flash , los applets de JAVA, los reproductores de medios integrados, etc.) algunos de los cuales tienen la capacidad de ejecutar código de script. Será difícil mantenerlos al tanto de tu lista negra.

En conclusión, si está planeando una implementación en la vida real, debería incluir en la lista blanca los tipos MIME inofensivos en lugar de poner en lista negra los peligrosos.

    
respondido por el Arminius 20.08.2017 - 18:19
fuente

Lea otras preguntas en las etiquetas