XSS en el contexto de un CDN

1

Digamos que hay un sitio web example.com . Aloja contenido estático de un CDN, example.net .

Este sitio permite cargar una imagen, que luego será servida desde el CDN. Estas imágenes pueden ser SVG y no se filtran de ninguna manera, por lo que pueden contener contenido HTML arbitrario (incluidas las etiquetas de script).

¿Consideraría esto un problema de seguridad?

Por un lado, le permite a uno ejecutar código si alguien accede a la imagen (por ejemplo, haciendo clic en él en el contexto de example.com ). Por otro lado, solo se ejecuta bajo el dominio de CDN, por lo que no puede robar cookies y demás. Sin embargo, podría utilizarse para redirigir a un sitio malicioso.

Otra nota: la imagen se sirve con Content-Security-Policy:default-src 'none'; , por lo que el código solo se ejecuta en IE.

    
pregunta Michael 05.05.2014 - 21:20
fuente

3 respuestas

1

Sí, esta es una vulnerabilidad de seguridad importante, pero eso no tiene nada que ver con XSS.

Por ejemplo, un atacante podría generar un formulario de inicio de sesión falso y engañar a los usuarios para que entreguen sus contraseñas.

El SVG también se puede usar para un ataque de clickjacking contra ti mismo o sitios que confían en ti, incluso si la protección de última generación está en acción. Técnicas estándar como el encabezado X-Frame-Options por lo general solo comprueban el contexto de navegación de nivel superior, y ese es su sitio. Por lo tanto, es probable que un atacante pueda incrustar otras páginas de su propio sitio o sitios asociados en un marco y luego engañar al usuario para que realice acciones en esas páginas.

    
respondido por el Fleche 05.06.2014 - 03:49
fuente
0

En general, siempre es un riesgo cuando incluye contenido de una fuente que no es absolutamente confiable y que no está totalmente bajo su propio control. Así que tiene sentido ser muy restrictivo con eso. Tal vez pueda cambiar el flujo de trabajo de manera que tenga el control de las imágenes que se cargan en el CDN, lo que ayudaría a reducir significativamente los riesgos.

Aunque no soy un experto en los detalles de la implementación del lado del navegador de CSP, si solo en la lista blanca:

img-src para el CDN: en general, el navegador solo permitiría representar imágenes de esa fuente y prohibiría la ejecución de cualquier script o la carga de otro tipo de contenido (directiva violada) desde esa fuente.

Estoy seguro de que esto también funciona si el código del script está disfrazado como una imagen, ya que el navegador solo aceptará el contenido de la imagen de esa fuente (el concepto CSP sería bastante inútil si eso fuera posible). Por supuesto, la protección solo funciona si el contenido se muestra en el contexto del sitio que tiene CSP implementado. Si carga la URL de la imagen directamente en el navegador, CSP no puede protegerlo.

Para estar absolutamente seguro, te recomendaría que lo verifiques explícitamente.

    
respondido por el binaryanomaly 05.05.2014 - 23:27
fuente
0

Esto es ciertamente un riesgo de seguridad. Si no está limpiando el código HTMl, esto lo deja abierto tanto al XSS sencillo como al enganche del navegador si se hace clic en una imagen que contenga HTML malicioso. Si esta imagen se guarda en el servidor, esto hace que el sitio sea vulnerable al XSS persistente. Uno podría convertir la imagen a hexadecimal, y también incluir HTML incluso para omitir un filtro y ejecutar código JavaScript, etc.

    
respondido por el Æther 05.06.2014 - 00:38
fuente

Lea otras preguntas en las etiquetas