Tecniche per individuare il punto di iniezione XSS

3

Sto cercando di capire un modo per capire quale linea di uno script JavaScript è responsabile per un'iniezione XSS. Supponiamo di avere un sito Web che richiede il mio nome e in alcune pagine ho impostato il mio nome come <script>alert("XSS")</script> .

Più tardi, navigo nel sito Web e in qualche modo vedo il mio payload in esecuzione. Guardo la fonte della pagina e vedo che il mio payload non è lì, quindi avrebbe dovuto essere attivato da qualche codice JavaScript. Qual è il modo migliore per trovare quale linea di codice è effettivamente responsabile dell'iniezione? Di solito cerco chiamate innerHTML(...) , cercando di capire l'ID dell'elemento in cui viene iniettato il mio carico utile, ma non sempre funziona. Ho anche provato a usare <script>debugger;</script> come payload, ma vedo solo il mio script in fase di debug e non quello responsabile dell'iniezione.

La cosa migliore sarebbe se ci fosse un modo per fermare l'esecuzione dello script responsabile dell'iniezione subito dopo l'attivazione di alert() , ma non ho trovato alcun modo. Qualche aiuto?

    
posta Alessandro Guagnelli 09.02.2017 - 21:55
fonte

1 risposta

1

Risposta parziale qui: Se lo script viene eseguito con l'aiuto di eval (che è ciò che accade se usi html() in jQuery 2.x), puoi cambiare il carico utile in qualcosa errore di lancio :

throw "XSS payload executed!";

Quindi accendi la console (F12 nella maggior parte dei browser). Sfoglia il sito fino a quando non attiverai il payload. Quando viene generato l'errore, avrai una piccola traccia di strack da ispezionare nella console.

    
risposta data 09.02.2017 - 22:26
fonte

Leggi altre domande sui tag