Vladimir È un attacco lato client quindi la vittima è l'utente. Sfruttando vulnerabilità, viene aggiunto codice JavaScript all'interno della pagina web, con l'utente inconsapevole (ad esempio questo avviene cliccando un link).
Per capire come funziona, faccio direttamente un semplice esempio appena creato da me:
<html>
<script>
function f(){
alert("ciao");
}
</script>
<a href="" onclick=f()>CLICCA QUI</a>
</html>
Questa pagina HTML contiene un link dal nome "CLICCA QUI", cliccando sul link non si finisce in un'altra scheda ma viene caricato un codice JavaScript che in questo caso stampa a video (tramite la function alert() ) la scritta "ciao". È chiaro che il codice JavaScript potrebbe essere di qualunque genere, quindi attenzione!
Questo tipo di attacco potrebbe avvenire anche tramite email con link malevolo, quindi analogamente a quanto avviene per il phishing.
Più in dettaglio, una delle fonti messe da te (dgroove.it) suddivide gli attacchi XSS in:
- Type 1 o Stored XSS: l’input dell’attaccante viene immagazzinato nel server (database o in un form di commento) oppure salvato permanentemente nel browser della vittima e successivamente restituito dal sito senza alcuna validazione, comportando quindi iniezione di codice HTML e JavaScript in grado di attaccare qualsiasi utente che richieda la risorsa infetta
- Type 2 o Reflected XSS: l’input malevolo è passato dall’attaccante tramite un parametro che viene restituito direttamente, riflettendo nel codice HTML della pagina il valore inserito nel parametro in fase di rendering senza alcun tipo di codifica
- Type 0 o DOM XSS: scoperta nel 2005 da Amit Klein, consiste in una vulnerabilità simile alle precedenti con la differenza che essa è presente direttamente nel codice JavaScript dell’applicazione