Recentemente abbiamo eseguito una scansione di sicurezza sulle nostre applicazioni web di produzione e ricevuto una notifica di una potenziale vulnerabilità XSS su un particolare URL che viene utilizzato per recuperare una risposta combinata contenente più file js.
Esempio: link
E il server restituirebbe i contenuti di foo.js e bar.js combinati / minificati / ecc. Se passi un nome file non valido, include nella risposta il nome del file che non è stato trovato all'interno di un commento in javascript.
Esempio: / * Impossibile trovare il file "foo2.js" * /
Sono riuscito a creare una pagina HTML che puntava a questo gestore CombinedScripts e ho visualizzato una finestra di avviso usando un tag script con un URL come:
Poiché questo URL restituisce solo javascript (non HTML), si tratta effettivamente di una vulnerabilità XSS?
Le pagine a cui viene fatto riferimento a questo URL in tutto il sito non utilizzano input utente non attendibili nella generazione dell'URL.
Non c'è un vero e proprio codice HTML coinvolto qui e indicando un utente direttamente a questo URL si limiterebbe a mostrare il javascript nel proprio browser, non a eseguirlo.
Se avessi la mia pagina HTML e potessi inserire l'URL dannoso in un tag script, potrei inserire javascript dannoso ma sarebbe eseguito nel contesto della pagina che già controllo, non nel contesto del sito che serviva il javascript così ho potuto facilmente mettere lo script direttamente nella pagina HTML che controllo.