Un altro appuntamento di hacking, del resto ne sentivamo la mancanza!
XSS è una categoria di attacchi molto pericolosi, che sfrutta le vulnerabilità dei siti. E’ bene saper difendere sia il proprio sito, che il proprio PC. Useremo una web app vulnerabile inducendo il browser ad eseguire il un nostro codice. Impareremo a riconoscere siti affetti da questo attacco. Molti pensano che, questo tipo di attacchi, si limiti ad aprire diversi pop-up durante la visita di un sito, senza dare troppo peso alla pericolosità, che invece è alta. Il nostro fine è SOLO educativo.
A volte può essere più conveniente attaccare gli utenti attraverso il loro browser piuttosto che dal server. I browser hanno dalla loro parte la sicurezza offerta dalla SOP (same origin Policy). Vulnerabilità presenti NEL CODICE, però possono permettere all’attaccante di bypassare le SOP. Quindi questa vulnerabilità nasce laddove una web application accetta input senza validarli, o sono presenti buchi nella gestione delle eccezioni. Possiamo dividere questa famiglia di attacchi in due sottocategorie:
-
XSS riflesso o non persistente, che esegue il codice malevolo per singolo utente
-
XSS persistente che infetta tutti gli utenti che visitano il sito attaccato. Il codice viene salvato sul server, ed eseguito per ogni utente. Come il redirect al sito della Clinton, dal sito di Obama nel 2008.
Trasferiamoci in laboratorio. Dal link seguente troverete le istruzioni per avviare la macchina virtuale con la web app in localhost. Personalmente lo preferisco in dockerhub.
https://github.com/ethicalhack3r/DVWA
La DVWA (Damn Vulnerable Web Application) è un’applicazione web fatta apposta per provare e migliorare le proprie competenze di hacking delle web application.
Di facile installazione è un bellissimo gioco da provare! Una volta avviata la nostra web app vulnerabile, colleghiamoci al suo indirizzo IP (gira in localhost) con un browser e clicchiamo sul bottone XSS reflected. Questa pagina è affetta da una vulnerabilità XSS nel metodo GET, vale a dire il metodo che serve per il recupero delle risorse dal web server. Alla richiesta della pagina il browser ce la “restituisce”, eseguendo il codice ricevuto contenuto nell’URL. Pertanto qualunque cosa ci sia nell’indirizzo del “sito”, lui la mostra in pagina… Qualunque cosa. Nella finestra possiamo inserire un semplice javascript (o anche non semplice) per farlo eseguire.
<script>alert(OverVolt)</script>
Magicamente apparirà un pop-up con la scritta “OverVolt”. Anche guardando il codice sorgente della pagina appare il nostro script interpretato come tale da chrome. L’attaccante ci potrebbe passare un link ad un sito con all’interno direttamente dei parametri di codice. Spesso si mette un codice breve che poi attiverà il codice malevolo vero e proprio. Questo codice non passerà dal server passando così inosservato dal vero titolare del sito, questa caratteristica non fa che aumentare la pericolosità.
Il tipo STORED o persistente come già detto esegue il codice malevolo su tutti i browser che capitano su quella pagina. Il nostro codice diventa parte stessa del sito.
È ancora più pericolosa della precedente, perchè attacca tutti i visitatori del sito infetto. DVWA presenta nella pagina dedicata a questo tipo di vulnerabilità, una specie di bacheca su cui ogni utente può lasciare un commento. Dunque, in questo caso, possiamo inserire in uno qualunque dei due campi il nostro script. Dando invio il nostro commento viene salvato sulla pagina stessa. Da questo momento in poi, la pagina sarà infetta per tutti gli utenti, e chiunque visiterà questa pagina eseguirà il nostro codice. C’è un però... Chrome in questo caso ha riconosciuto la pagina infetta e la blocca immediatamente. Fa parte delle difese “base” del nostro browser. Anche se a volte basta ricaricare per farlo eseguire comunque, possiamo eventualmente disattivare momentaneamente eventuali tool di sicurezza nel browser.
Il vettore principale di questi attacchi sono le mail. Non aprite mai i link dei vostri siti direttamente dalle mail che ricevete. Meglio fare il “giro” lungo dal sito stesso.Cliccando direttamente su eventuali link malevoli, potremmo installare un payload, che consente all’attaccante una famiglia di programmi malevoli detti RAT (remote access tool) in grado di dare il controllo remoto di un computer. Voi non vedreste nulla ma da quel momento il vostro computer non sarà più sotto il vostro controllo. Alcuni attacchi sfruttano tecniche di social ingeneering per indurVi a cliccare direttamente dal link. Per esempio potrebbero mandarvi una mail col logo di postepay o del vostro provider o della vostra banca, da cui Vi chiedono di accedere alla vostro conto home banking. Ecco piuttosto che cliccare direttamente, collegatevi al sito attraverso un’altra finestra e loggatevi da lì.
D’altro canto un sito, per proteggersi, può fare dell’ escaping o dell’encoding trasformando tutto ciò che può essere codice in altri caratteri, sostituisce cioè i caratteri che possono voler dire qualcosa in programmazione in “altro”), oppure in filtrando gli URL (togliendo le parti malevole). L’utente, per difendersi può disabilitare, dal browser gli script ma a volte non lo si fa per via di certi “falsi positivi” che bloccano applicazioni legittime, non è una buona pratica, anche se la più valida per difendersi, resta (e resterà) sempre evitare siti e mail sospetti. L’hacking è una delle branche più interessanti dell’informatica. Le varie “war” dagli anni ‘50 ad oggi hanno portato quello che è da considerarsi lo sviluppo informatico. Ricordate che violare un sistema senza essere autorizzati può costare molto caro. Le pene previste dal codice penale, prevedono anche la reclusione fino a 4 anni.