DiGiTaL RiOt

Introduzione alle tecniche di XSS

Ottobre 7, 2007 · 2 Commenti

XSS sta per Cross Site Scripting, ed è una tecnica molto utilizzata per deviare l’ordinario funzionamento di alcuni siti internet che non sono stati adeguatamente programmati. Si basa sull’immissione di codice arbitrario all’interno di un URL o comunque di una variabile processata da un server web o da una pagina html.

Le tecniche di XSS sono moltissime e la complessità aumenta con l’evolversi dei sistemi di protezione.
Esaminiamo il seguente script php:

echo $_POST["stringa"];

Molto semplicemente, visualizza la variabile post chiamata stringa, senza eseguire alcun controllo su di essa (assoumiamo che il form non abbia eseguito alcun tipo di controllo sul testo immesso). Chiunque conosca un pizzico di javascript potrebbe inserire codice arbitrario e modificare il comportamento della pagina!
A questo punto potreste pensare che non si tratta di un grande problema, perchè una volta eseguito il refresh della pagina senza inviare nuovamente i dati POST, la variabile si svuoterebbe, ma nel caso di un guestbook? o di un commento ad un post? sarebbe parecchio problematico avere uno script javascript persistente che agisce ad ogni visualizzazione della pagina: con una riga di javascript potremmo eseguire il reindirizzamento del browser, rendendo praticamente inutilizzabile la pagina.

Ad esempio, la seguente riga di codice javascript, emette uno warning, se utilizzato in uno dei contesti di cui parlavo prima non impedirebbe l’accesso alla pagina, ma farebbe veramente girare le scatole allo staff ;)

<SCRIPT>alert()</SCRIPT>

Questo messaggio di allarme non mostra alcun testo, ma aumenta le probabilità di riuscita del XSS, in quanto non usa gli apici, che di solito vengono convertiti rendendo la nostra stringa Javascript mal-formattata ed ignorata dal browser.
Ecco un esempio più efficace:

<IMG """><SCRIPT>alert("XSS")</SCRIPT>">

Questo script sfrutta una caratteristica dei motori javascript introdotta per ridurre gli errori di coding, permettendo una sintassi errata possiamo nascondere il codice javascript con tanto di apici dentro gli apici di formattazione del tag <IMG>.

Queste sono solo l’1% delle tecniche di XSS conosciute, anche perchè ogni browser ha delle precise caratteristiche che lo rendono diverso da ogni altro (agli occhi attenti dell’hacker ;) ).

Ecco alcuni links utili:


Categorie: Hacking · Sicurezza · XSS · javascript · php

2 risposte finora ↓

  • Alfredo Panzera // Ottobre 7, 2007 a 9:44 pm | Replica

    Ciao Fatmatt,
    mi piace il tuo terzo esempio descritto, ed una cosa simile se non erro era possibile farla su Forumfree.net
    Qualcosa del tipo “>>></script[...E via dicendo] ^^

    Se ti interessa c’è anche un sito (www.xssed.com) che raccoglie le XSS di siti web. Alcuni, ma pochi, sono molto interesssanti perchè giocano con queste combinazioni ^^

    Cordiali saluti,
    Alfredo P.

  • fatmatt // Ottobre 7, 2007 a 10:28 pm | Replica

    Ciaps!!

    Innanzitutto grazie per il link !! per quel che riguarda le falle di Forumfree, ecco un bel thread sull’argomento :

    http://www.infernet-x.com/-xss-forumfree-t-3872.html

    C’è davvero da sbizzarrirsi con il sistema di filtraggio di Forumfree XD

Lascia un Commento