Recientemente se realizó un análisis de seguridad en nuestras aplicaciones web de producción y recibimos una notificación de una posible vulnerabilidad XSS en una URL particular que se utiliza para recuperar una respuesta combinada que contiene varios archivos js.
Ejemplo: enlace
Y el servidor devolvería el contenido de foo.js y bar.js combinado / minified / etc. Si pasa un nombre de archivo no válido, incluye en la respuesta el nombre del archivo que no pudo encontrar dentro de un comentario en el javascript.
Ejemplo: / * No se puede encontrar el archivo 'foo2.js' * /
Pude crear con éxito una página HTML que apunte a este controlador de CombinedScripts y mostré un cuadro de alerta usando una etiqueta de script con una URL como:
Dado que esta URL solo devuelve javascript (no HTML), ¿es esto realmente una vulnerabilidad XSS?
Las páginas donde se hace referencia a esta URL en todo el sitio no utilizan ninguna entrada de usuario no confiable para generar la URL.
No hay un HTML real involucrado aquí y apuntar a un usuario directamente a esta URL solo haría que el javascript aparezca en su navegador, no lo ejecute.
Si tuviera mi propia página HTML y pudiera poner la URL maliciosa en una etiqueta de script, entonces puedo inyectar un javascript malicioso pero se ejecutaría en el contexto de la página que ya controlo, no en el contexto del sitio que servía. El javascript para que pueda poner el script directamente en la página HTML que controlo.