Aggiornato al : giu 21, 2008



Gli attacchi XSS non persistenti sono così definiti poichè il codice iniettato non permane sul sito web ed i soli utenti vulnerabili sono quelli che accedono alla pagina, cliccando sul link realizzato ad-hoc. Si supponga che un attaccante voglia effettuare un cross-site scripting a danno degli utenti del sito di una libreria, che offre l’opportunità di ricercare ed acquistare i testi mediante transazioni online.
Il primo passo consiste nel testare ed individuare l’eventuale vulnerabilità del sito bersaglio ad attacchi XSS. Per fare ciò l’attaccante deve generare un apposito URL, agendo sul form di ricerca offerto dalla libreria. Inserendo una stringa di prova, ad esempio ricerca appena inserito nel modo seguente:

http://www.libreria.it/carrello.php?richiesta=

Il risultato sarà , molto probabilmente, un messaggio d’errore che indicherà l’assenza di un libro che rispecchi il parametro di ricerca inserito. Ciò dimostra la vulnerabilità del sito in questione ad attacchi di cross-site scripting.
Il successivo passo dell’attaccante è quindi modificare in maniera arbitraria l’URL in modo tale da iniettarvi il codice del proprio malware. Un semplice esempio consiste nella creazione di un JavaScript che, eseguito sul browser della vittima, consente di aprire una finestra di pop-up con un messaggio arbitrario.
Tornando all’esempio della libreria online, si supponga che l’attaccante inserisca
nel form di ricerca la seguente linea di codice:

” ><script type="text/javascript"><!--
alert(‘XSS%20Test’)
// " class="mcePageTitle mceItemNoResize" />
// " class="mcePageTitle mceItemNoResize" />
// --></script>

La pagina di ricerca visualizzata conterrà quindi il seguente codice HTML:
<form action="“http://www.libreria.it/carrello.php"> <input name="“search" type="“text" value="“”" /> <script type="text/javascript"><!--
alert(‘XSS%20Test’)
// " class="mcePageTitle mceItemNoResize" />
// " class="mcePageTitle mceItemNoResize" />
// " class="mcePageTitle mceItemNoResize" />
// --></script>
<input type="“submit" value="“Submit" /> </form>

Il risultato sarà, all’apertura della pagina, la visualizzazione di un innocuo messaggio ‘XSS Test’. Tuttavia, tale tecnica può essere sfruttata per iniettare codice Javascript malevolo, che possa ad esempio carpire i dati dell’utente vittima. A prima vista questo approccio potrebbe apparire innocuo: dal momento che il codice non è persistente, l’unico a poterlo visualizzare ed eseguire è lo stesso attaccante che lo sta iniettando nell’URL della pagina web. Tuttavia, sfruttando alcune tecniche di ingegneria sociale e la pratica dell’email spamming, un attaccante può indurre utenti ignari a cliccare su un link del genere, creato ad-hoc.
Riuscire a farlo non risulta affatto difficile, specialmente se l’URL in questione rappresenta un sito con cui l’utente ha una certa familiarità, e quindi fiducia.
Infatti, l’utente medio del web difficilmente andrà a verificare l’eventuale presenza di uno script nel link ricevuto, è tantomeno la sua pericolosità.

Nell’articolo introduttivo, si era parlato di una percentuale di siti vulnerabili ad attacchi di cross-site scripting pari al 91%, per comprendere la portata di tale fenomeno basti considerare che perfino svariati siti governativi, dai quali ci si aspetta un certo livello di protezione, si sono rivelati vulnerabili all’XSS.

Articolo precedente -> Introduzione alle tipologie di Cross Site Scripting (Xss)

Articolo successivo -> Attacchi XSS persistenti

Autore : Simon. U



You may be the one to comment first. Please leave your message below.