SQL Injection
giugno 2, 2009 by Renato Brunetti
Filed under ASP/ASP.NET, Hacking, PHP
Trattasi delle seguenti piattaforme:
• ASP.NET versione 1.1
• ASP.NET versione 2.0
• PHP
Che cos’è una SQL Injection?
La SQL injection è una tecnica dell’hacking finalizzata a colpire le applicazioni web che utilizzano un database di tipo SQL. Questa tecnica sfrutta un errore o dimenticanza del programmatore di effettuare controlli sui dati ricevuti in input per immettere del codice maligno all’interno di una query. Tramite un SQL Injection, il malintenzionato può riuscire ad autenticarsi all’interno del sito, potendo visualizzare e modificare i contenuti di quest’ultimo. Il tutto senza conoscere username e password dell’amministratore del sito web. Ovviamente, una volta riusciti ad entrare nelle aree protette del sito web, è anche possibile risalire alla password dell’amministratore..
Come proteggere le pagine ASP dagli attacchi
Fortunatamente è possibile proteggersi da questi attacchi!
Se utilizziamo un database SQL Server, sarà necessario utilizzare le stored procedure, in questo modo i parameters sono immuni a questo genere di attacco.
Se utilizziamo un altro tipo di database, per esempio: mysql.. possiamo sfruttare una funzione come questa:
<%
Function ProteggiSQL(stringa)
stringa = Replace(stringa, “[", "[[]“);
stringa = Replace(stringa, “]”, “[]]”);
stringa = Replace(stringa, “_”, “[_]“);
stringa = Replace(stringa, “‘”, “””);
stringa = Replace(stringa, “%”, “[%]“);
stringa = Replace(stringa, “#”, “[#]“);
ProteggiSQL = stringa
End function
SQL = “SELECT * FROM tab1 WHERE ID = ‘” & ProteggiSQL(Request(“ID”)) & “‘”
%>
Questa piccola ma efficace funzione, non fa altro che variare i caratteri immessi.
Per proteggere invece la nostra pagina web dagli attacchi injection basterà utilizzare la seguente funzione Server.HtmlEncode, in questo modo non verrà riconosciuto il comando di injection nella query.
<%
strHTML = “alert(document.cookie);”‘ stringa immessa nei form di login
Response.Write(strHTML)‘ protezione da un eventuale code injection
Response.Write(Server.HtmlEncode(strHTML))%>
Come proteggere le pagine PHP dagli attacchi
Anche in PHP è possibile proteggersi da attacchi Injection, tuttavia, esistono vari metodi. Lascio a voi la scelta di quale utilizzare:
<?php
function stop($data){
$hash = addslashes(strip_tags($data));
return $hash;
}
?>
Questo pezzetto di codice serve per bloccare tutti i tag html sospetti, in più bloccherà l’utilizzo di una punteggiatura pericolosa, per esempio ‘aaa”. Ovvero l’utilizzo di apici singoli e doppi.
<?php
function stop($data){
$hash = msyql_real_escape_string(strip_tags($data));
return $hash;
}
?>
Quest’altro codice, invece, è simile alla precedente, ma è molto più accurata e fidata
I due script postati sopra, devono essere utilizzati univocamente, non è possibile utilizzarli entrambi nella stessa pagina, sarebbe inutile..
Ovviamente, questi script sono elementari, quindi un malintenzionato preparato potrebbe scavalcare questa protezione..
Come verificare se il proprio sito è vulnerabile
Se si utilizza un database SQL Server, si può utilizzare l’applicativo di casa Microsoft: UrlScan filter. Questo tool, controlla il codice delle proprie pagine e segnala eventuali porzioni di codice vulnerabili.
Per tutti gli altri database è possibile utilizzare uno dei tanti tool Open Source, sul seguente sito trovate una lista dei vari tool e del linguaggio di programmazione controllato.
Lista tool: http://samate.nist.gov/index.php/Source_Code_Security_Analyzers.html
Popularity: 4% [?]
VNC e il controllo remoto
agosto 28, 2008 by Renato Brunetti
Filed under Hacking

Come tutti sappiamo (o almeno credo), VNC è un programma per il controllo remoto di un computer. Esso permette di monovrare il computer anche se esso è a milioni di Km. Necessita soltanto della connessione ad internet, come si intuiva..
Molti però non sanno dell’esistenza di “Ultra VNC“. E’ sempre lo stesso programma, ma ha qualche funzione in più. Tipo il trasferimento di file, spegnere il monitor del pc remoto, pigiare la sequenza del task manager, e altre cosucce.. Ora vediamo come sfruttare questo programmino per divertirci con gli amici. L’ultima versione di Ultra VNC, permette di disabilitare l’icona nella TryBar (dove risiede l’orologio di win), e già questo è a nostro vantaggio
, perchè una volta che il nostro amico apre il programma, non si accorge di nulla, e per lui non funziona.. Nelle vecchie versioni invece, basta editare una voce del registro per rendere invisibile l’icona dalla try.
La stringa da inserire è questa:
[HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3]
“DisableTrayIcon”=dword:00000001
Basta copiarla in un file blocco note, salvare il file poi come tipo: Tutti i file, e dargli l’estensione .reg
Bhè un nostro amico non lo farà mai, avviare un exe si, ma installare una chiave di registro… la vedo dura! La soluzione restante è quella di creare un setup di un gioco gratuito, e far eseguire sia l’installazione della chiave di registro, che il programma VNC. Metodo furbo.. ad ogni modo, con la versione nuova questi problemi non sussistono. Resta solo il problema della password. Raggirabile con lo stesso metodo precedente, solo che stavolta, la password la immettiamo in vnc del nostro PC, poi succcessivamente andiamo nel registro di sistema e ci esportiamo la stringa con la nostra password. VNC non è rilevato come virus o trojan, questo perchè è privo di codice maligno. Il suo intento è quello di essere usato sui propri computer e non su quelli degli altri, anche perchè c’è differenza tra un trojan e VNC. Tramite un trojan si può fare quasi tutto ma non si può distribuire il file a chi è protetto da antivirus, altrimenti quest’ultimo lo rileva ed elimina istantaneamente. Infine, un trojan è un pò complicato da rimuovere, VNC invece, basta eliminare l’eseguibile per non averne più traccia (apparte qualche piccola chiave di registro).
Perchè vi ho spiegato questo? Non per farvelo fare, ma per farvi capire che anche un software innocuo ed utile come VNC, può risultare pericoloso. Quindi state attenti a quello che vi passano gli “amici”, specie nei programmi di instant messaging.
Disclamier: Non mi ritengo responsabile del cattivo uso che facciate del programma, esso è un programma free del progetto Open Source, e quindi distribuito a tutti. Siate responsabili e non fate stupidate perchè dopo resterete soli
Popularity: 26% [?]





