Hacking etico - Cross-Site Scripting

Cross-site scripting (XSS) è un attacco di iniezione di codice che consente a un utente malintenzionato di eseguire JavaScript dannoso nel browser di un altro utente.

L'attaccante non prende di mira direttamente la sua vittima. Invece, sfrutta una vulnerabilità in un sito Web visitato dalla vittima, al fine di convincere il sito Web a fornire JavaScript dannoso per lui. Per il browser della vittima, il JavaScript dannoso sembra essere una parte legittima del sito Web e il sito Web ha quindi agito come un complice involontario dell'aggressore. Questi attacchi possono essere eseguiti utilizzando HTML, JavaScript, VBScript, ActiveX, Flash, ma l'XSS più utilizzato è JavaScript dannoso.

Questi attacchi possono anche raccogliere dati dal dirottamento dell'account, dalla modifica delle impostazioni dell'utente, dal furto / avvelenamento dei cookie o dalla falsa pubblicità e creare attacchi DoS.

Esempio

Facciamo un esempio per capire come funziona. Abbiamo una pagina web vulnerabile che abbiamo ottenuto dametasploitablemacchina. Ora testeremo il campo evidenziato dalla freccia rossa per XSS.

Prima di tutto, creiamo un semplice script di avviso

<script>  
   alert(‘I am Vulnerable’)  
</script>

Produrrà il seguente output:

Tipi di attacchi XSS

Gli attacchi XSS sono spesso suddivisi in tre tipi:

  • Persistent XSS, dove la stringa dannosa proviene dal database del sito web.

  • Reflected XSS, dove la stringa dannosa ha origine dalla richiesta della vittima.

  • DOM-based XSS, dove la vulnerabilità è nel codice lato client piuttosto che nel codice lato server.

In genere, lo scripting cross-site viene rilevato da vulnerability scanners in modo da non dover fare tutto il lavoro manuale inserendo un JavaScript come

<script>  
   alert('XSS') 
</script>

Burp Suite e acunetix sono considerati i migliori scanner di vulnerabilità.

Consiglio rapido

Per prevenire attacchi XSS, tieni presente i seguenti punti:

  • Controlla e convalida tutti i campi del modulo come moduli nascosti, intestazioni, cookie, stringhe di query.

  • Implementa una rigorosa politica di sicurezza. Impostare la limitazione dei caratteri nei campi di input.