¿Existen vulnerabilidades de XSS durante la vista previa de la imagen antes de cargarla?

2

Escribí una herramienta JQuery para obtener una vista previa de las imágenes antes de subirlas.

  • El usuario A hace clic en el botón Explorar para seleccionar una imagen
  • lo selecciona
  • un evento de cambio muestra la imagen

Si el usuario A selecciona una imagen SVG preparada como "greetings_ILL_xss_your_site.svg" o "greetings_ILL_xss_your_site.gif" mi JQuery obtendrá la imagen del directorio tmp, la redimensionará y la mostrará.

Como svg son pequeños programas, y gif puede contener scripts:

  • ¿Podría ejecutar código que utiliza scripts XSS?
  • ¿La imagen vista previa está autenticada para ejecutar solicitudes de script?
pregunta quevedo 22.06.2018 - 16:18
fuente

2 respuestas

0

No, no hay. Si alguien quiere atacar su propia máquina con JS, la pestaña de la consola de devtool es mucho más fácil que crear un svg incorrecto. XSS solo es un problema cuando el código malicioso se comparte con otros usuarios . Si el usuario no sabía que el archivo era malicioso, podría presentar un problema, pero no es suyo para tratar.

Además, el contexto de origen / protocolo en el que se mostraría una imagen de vista previa (datos: o blob :) debería proteger su sitio de un código de imagen errónea de cualquier manera (aunque algunos días cero o cualquier podrían sea posible).

    
respondido por el dandavis 22.06.2018 - 23:26
fuente
0

Sí, Self-XSS puede ser posible. El usuario tendría que crear el svg / gif explotable por sí mismo o descargar uno comprometido de algún lugar.

Y si el nombre de archivo de la imagen NO se vuelve a codificar ni se le quitan las etiquetas / propiedades EXIF, la imagen creada en el directorio tmp se puede usar como enlace para Reflected XSS, que se activa cuando una víctima hace clic en el enlace vulnerable .

En cuanto a si la imagen vista previa está autenticada para ejecutar solicitudes de script, eso depende de cómo se lea en la página que se muestra. Si se carga directamente sin ninguna protección CSP o se recodifica como lo mencioné anteriormente, sería posible ejecutar solicitudes de script.

    
respondido por el Yuu 20.11.2018 - 09:48
fuente

Lea otras preguntas en las etiquetas