
INTRODUZIONEIl Cross Site Scripting, successivamente chiamato XSS per non confondersi con Cascading Style Sheets, è un tipo di vulnerabilità che affligge le applicazioni web con codice scritto in modo poco sicuro nelle variabili di input. Eseguendo un attacco di tipo XSS è possibile rubare i cookie della vittima, costruire fake login, worm, ridirezionare le pagine web e tanto altro ancora. Per questo motivo il problema non riguarda la compromissione del sito stesso nello specifico quanto ingannare gli utenti ingenui che nel 85% dei casi cascano negli attacchi XSS, compromettendo la loro stessa sicurezza e la loro identità. Più avanti spiegheremo quali sono le infinite possibilità che ci offre il Cross Site Scripting. Prima di proseguire con la lettura però si raccomanda una conoscenza basilare di :-HTML-PHP , GET() e POST()-JavascriptRicordo inoltre che con il nome “Joe” si intende l’attacker.STORIAIl nome “Cross Site Scripting” venne usato per la prima volta da Mark Slemko, il pioniere del XSS. Di lui sappiamo che nasce in Canada negli U.S.A. E’ attualmente “Platform Technology Director”, sovrintende allo sviluppo del prodotto, l'automazione e l'integrazione delle tecnologieweb e l’infrastruttura IT. Mark ha una vasta esperienza con leadership di alto profilo, con diversi statunitensi e canadesi tra cui aziende di software Radical Entertainment, Morgan Inc.and Avue Media Technologies.Il nome XSS, però, oggi come oggi non rispecchia tutti i problemi che questo tipo di vulnerabilità porta con sé.Tipi di XSS : DOM BasedIl DOM-Based Cross Site Scripting permette a Joe di lavorare non sul sito personale della vittima ma direttamente all’interno della sua macchina.Questo avviene perché molti sistemi operativi includono “dalla nascita” alcune pagine HTML create per scopi diversi tra loro, ma a lungo andare gli utenti di questi O.S. possono commettere degli errori con queste pagine HTML, che diventano vulnerabili e possono essere soggette adexploit.L’attacco:-Joe crea un sito web con delle pagine contenenti codice malevolo-L’utente ingenuo apre questo tipo di sito-L’utente ha una pagina HTML vulnerabile sulla sua macchina-Questa pagina vulnerabile esegue i comandi imposti dal codice malevolo di joe con i permessidell’utente ingenuo.-Joe può ora facilmente controllare il computer della vittimaLa difesa:-Non visitare siti web sconosciuti o con nomi pochi convincenti, come ad es. nomi alfanumerici.-tenere il proprio sistema aggiornato-Evitare di accedere alla macchina con i permessi di root / adminsitratorTipi di XSS : Non-PersistentiLe vulnerabilità XSS Non-Persistenti sono attualmente quelle più facili che possiamo trovare nel Web. Sono chiamate così perché lavorano sulla risposta HTTP immediata da parte del sito vittima: quando le pagine web prendono i dati immessi da Joe nelle variabili di input ,generanoautomaticamente la pagina contenente il risultato per lo stesso Joe.Stando a ciò, Joe inserisce diversi tipi di dati o meglio di codici malevoli fino a che il server non esegue come risultato ciò che lui ha messo come input. In genere i motori di ricerca interni ad un sito web soffrono di queste vulnerabilità XSS. Se questo avviene, allora al 99% saremo in grado di eseguire anche altro codice javascript.Per esempio se dobbiamo cercare la vulnerabilità su un sito come: