DISCLAIMER!

Le informazioni (e i download, quindi tutti i file contenuti nel blog) da me divulgate sono da ritenersi a puro scopo informativo e di studio. Non mi assumo nessuna responsabilità riguardante l'uso improprio e/o illecito delle tecniche e dei programmi qui descritti e di tutti i danni a cose e persone e/o perdite di guadagni che ne possano derivare. Il blog non vuole istigare nessuno a delinquere o a commettere reati. Le tecniche qui descritte sono da utilizzare a proprio rischio e pericolo.

Traduci Il Blog In




Cerca in Xthreme Hacking!

Trovare e Fixare una XSS


Intanto cominciamo questa guida spiegando cosa sono le XSS quali sono i metodi usati per l'inniezione di codice javascript all'interno di una pagina.

Cosa è una xss?
Il Cross-site scripting (XSS) è una vulnerabilità che affligge siti web dinamici che impiegano un insufficiente controllo dell'input (parametri di richieste HTTP GET o contenuto di richieste HTTP POST). Un XSS permette ad un attaccante di inserire codice al fine di modificare il contenuto della pagina web visitata. In questo modo si potranno sottrarre dati sensibili presenti nel browser degli utenti che visiteranno successivamente quella pagina. Gli attacchi alle vulnerabilità XSS hanno effetti dirompenti per i siti con un elevato numero di utenti, dato che è sufficiente una sola compromissione per colpire chiunque visiti la stessa pagina.
Esistono due tipi di vulnerabilità XSS:
stored, nelle quali un attaccante è in grado di modificare permanentemente il contenuto di una pagina web, ad esempio inserendo un commento opportunamente preparato ad un post in un blog. reflected, grazie alle quali è possibile produrre un URL che, utilizzato sul sito vulnerabile, ne altererà il contenuto delle pagine in modo non permanente ed esclusivamente per le richieste HTTP che utilizzano tali URL appositamente forgiati. Questa vulnerabilità è dovuta a errori dei programmatori, che molto spesso trascurano completamente la validazione delle informazioni passate in input con le richieste HTTP
(By Wikipedia)

Tipi di attacchi:
Il metodo forse piu conosciuto per inniettare del codice javascript è quello di inserire del testo all'interno di una variabile che viene poi stampata dallo script della pagina..
Questo magari puo essere uno script comune per la ricerca di un argomento in un sito...
Codice: $search = $_GET['search']; ehco "Nessun risultato trovato per il termine $search\n"; ?>Una persona malintenzionata puo semplicemente inserire all'interno della variabile del codice javascript, che verrà stampato dallo script senza effettuare controlli..
quindi visitando questa pagina:
Codice:
http://sito.com/search.php?search= alert(1)   Il risultato teoricamente sarebbe cosi:Codice:
Nessun risultato trovato per il termine alert(1)
Solo che essendo il risultato stampato direttamente sulla pagina allora il codice javascript sarà eseguito..

Ci sono altri metodi per effettuare un'xss..

Ci sono alcuni siti che visualizzano l'useragent del visitatore, dimenticando pero che anche l'user agent puo essere modificato..

Apriamo Mozilla, e andiamo su about:config
ora cerchiamo il parametro:
Codice:  general.useragent.extra.firefoxe modifichiamolo con il solito codicino..:
Codice:
alert(1) Visitiamo la pagina che ci fa visualizzare l'useragent e.. sorpresa..

Vediamo ora com'è costruita una pagina vulnerabile che stampa l'useragent a schermo..
Codice:
$user_agent = $_SERVER['HTTP_USER_AGENT']; echo "Il tuo useragent è $user_agent\n"; ?>Di nuovo si capisce semplicissimamente come viene eseguita un'xss..

Un'altro metodo per inserire dei dati a livello utente che possono venire stampati è l'uso dei cookie..
Vediamo un po come fare..

Questo script serve solo per salutarci..
Codice:
$nick = $_COOKIE['user']; echo "Welcome $nick\n"; ?>Questo script legge il cookie con il nome 'user' e lo stampa a schermo..

E'molto semplice modificare i cookie, esiste anche un'addon di mozilla (Cookie Editor) che consente di modificare i cookie a proprio piacimento, quindi basta che mettiamo come valore di un cookie il solito codice:
Codice:
alert(1) E la nostra XSS è bella che eseguita..
Ora che abbiamo visto come effettuare un'XSS, vediamo ora come fare a fixarne una qualora ne avessimo una sul nostro sito..

Fixare un xss
Esiste una funzione apposita di PHP che si chiama htmlentities (stringa) che viene usata durante lo stampaggio a schermo di un testo per rimpiazzare i caratteri '<' e '>' con i loro corrispondenti caratteri speciali
che non verranno riconosciuti come codice dal browser e non verranno eseguiti...

Ora vediamo bene un'attimo come usare questa funzione...:
Codice:
$search = $_GET['search']; ehco "Nessun risultato trovato per il termine ".htmlentities($search)."\n"; ?>
In poche parole abbiamo applicato la funzione htmlentities durante lo stampaggio.. i ".funzione()." servono solo per concatenare il testo con la funzione..

Nessun commento:

Posta un commento