Che cos’è?
Il cross-site scripting (XSS) rimane una delle vulnerabilità comuni che minacciano le applicazioni web ancora oggi. Gli attacchi XSS si basano sull’iniezione di uno script dannoso in un sito web benigno da eseguire sul browser di un utente. In altre parole, gli attacchi XSS sfruttano la fiducia dell’utente nell’applicazione web vulnerabile, da cui il danno. Come già affermato, XSS è una vulnerabilità che consente a un aggressore di iniettare script dannosi in una pagina Web visualizzata da un altro utente. Di conseguenza, aggirano la Same-Origin Policy (SOP); SOP è un meccanismo di sicurezza implementato nei moderni browser Web per impedire a uno script dannoso su una pagina Web di ottenere l’accesso a dati sensibili su un’altra pagina. SOP definisce l’origine in base al protocollo, al nome host e alla porta. Di conseguenza, un annuncio dannoso non può accedere ai dati o manipolare la pagina o la sua funzionalità su un’altra origine, come un negozio online o una pagina di una banca. XSS schiva SOP poiché viene eseguito dalla stessa origine.
Una conoscenza di base di JavaScript è fondamentale per comprendere gli exploit XSS e adattarli alle proprie esigenze. Sapendo che XSS è un attacco lato client che avviene sul browser web del bersaglio, dovremmo provare i nostri attacchi su un browser simile a quello del bersaglio. Vale la pena notare che diversi browser elaborano determinati frammenti di codice in modo diverso. In altre parole, un codice exploit potrebbe funzionare contro Google Chrome ma non contro Mozilla Firefox o Safari.
Supponiamo che tu voglia sperimentare un po’ di codice JavaScript nel tuo browser. In tal caso, devi aprire la Console che si trova in Strumenti per sviluppatori web su Firefox, Strumenti per sviluppatori su Google Chrome e Web Inspector su Safari. In alternativa, usa le rispettive scorciatoie:
- Su Firefox, premi Ctrl + Maiusc + K
- Su Google Chrome, premi Ctrl + Maiusc + J
- Su Safari, premi Comando + Opzione + J


Tipi di XXS
La differenza fra questi tre tipi di XSS li puoi trovare a questa pagina Payloads Standard.