XSS - archivo arbitrario en propiedad css de imagen de fondo

5

¿Es posible realizar un ataque XSS si puede inyectar un archivo arbitrario (cualquier extensión, como: .js, .html, etc.) en la propiedad background-image CSS? Si es así, ¿cómo hacerlo?

    
pregunta Bob 19.01.2018 - 11:50
fuente

2 respuestas

6

No, eso no es posible.

Un valor para background-image se representará como una imagen. Incluso un SVG con código de script incorporado solo se mostraría como una imagen cuando se cargue a través de background-image . Así que XSS no es posible aquí (de la misma manera que un valor arbitrario para <img src="..."> nunca puede llevar a XSS).

Incluso si no pudieras simplemente cambiar un valor background-image pero inyectar un nuevo CSS, lo más probable es que no puedas obtener XSS. Las técnicas para inyectar código de script a través de CSS expression(...) o url('javascript:...') no funcionan en los navegadores modernos. En otras palabras, incluso la incrustación de un archivo CSS completo controlado por el usuario puede dar lugar a graves fugas en los canales laterales, pero no a XSS simple.

    
respondido por el Arminius 19.01.2018 - 15:28
fuente
0

En casos extremos, puede llevar a problemas, pero no necesariamente a XSS, ni necesariamente a través de la regla de estilo de imagen de fondo.

Número de caso extremo 1: el proveedor de su navegador podría tener una vulnerabilidad en el motor de renderización de la imagen de fondo que, si se explota, hace que se ejecute el código. Esto es altamente improbable con los navegadores modernos, pero en teoría podría ser posible.

Número extremo de caso 2: el sitio podría tener modificaciones de CSS no estándar, como EQCSS que admiten eval ('') u otra forma de ejecutar Javascript. En este caso, efectivamente puede inyectar Javascript en la página.

Número de caso extremo 3: si el sitio está diseñado de tal manera que se puedan agregar clases de CSS arbitrarias y reglas adjuntas, es posible escribir reglas inteligentes que puedan filtrar datos en función de los selectores de atributos de CSS. Por ejemplo, los atributos del lector de pantalla agregados por ciertos marcos de javascript que contienen parte o todo el contenido de cierta página podrían combinarse con imágenes alojadas en otro sitio para filtrar datos sobre el contenido de los atributos.

Número de caso extremo 4: las reglas CSS anteriores y posteriores a CSS admiten la regla de estilo "contenido" que se puede usar para insertar cadenas bastante arbitrarias antes o después del contenido. actualmente hay un borrador ( enlace ) que propone extender esta regla de estilo de contenido más allá de la limitación de antes / después.

    
respondido por el Nzall 13.04.2018 - 12:19
fuente

Lea otras preguntas en las etiquetas