Ho una pagina web che restituisce codice di script non elaborato con l'intestazione Content-Type: text/javascript
. Tuttavia ho trovato che c'è un xss riflettente in uno dei parametri passati all'url che viene copiato nel javascript restituito.
Questa è la configurazione.
URL:
www.mysite.com/js?p1=data&p2=NodeFrame.jsResponse
Javascript:
/**/NodeFrame.jsResponse({"success":true,"data":{"id":0,"jdata":[]}});
Ora l'XSS che ho trovato va così
URL:
www.mysite.com/js?p1=data&p2=NodeFrame.jsResponse({"success":true,"data":{"id":0,"jdata":[]}});alert(1);//
Javascript:
/**/NodeFrame.jsResponse({"success":true,"data":{"id":0,"jdata":[]}});alert(1);//({"success":true,"data":{"id":0,"jdata":[]}});
Per chiarire, i valori del parametro p2, vengono utilizzati non pubblicitari nello script restituito, come il nome della funzione.
La risposta HTTP ha Content-Type: text/javascript
, in essa. E lo script non è incorporato in un documento html.
C'è qualche possibilità che il codice possa essere eseguito in un browser? Sono preoccupato per i vecchi browser e fondamentalmente.
Supponi che X-Content-Type-Options: nosniff
non sia impostato, c'è un browser che lo renderà effettivamente? In tal caso, posso testare un PoC o una versione del browser?
Modifica :
La domanda è: qualsiasi versione di qualsiasi browser, annuserà un codice di script non elaborato con Content-Type: text/javascript
set di intestazione, dato che X-Content-Type-Options: nosniff
non è impostato.