Reading Time: 2 minutes

SQL Injection

Un’altra seria vulnerabilità, che negli anni ha incontrando ampia diffusione, riguarda la possibilità di iniettare e/o estrarre informazioni da database accessibili via Web tramite tecnica denominata SQL Injection.

Fondamentalmente la causa del problema è legata al non corretto filtraggio di caratteri speciali (come gli “Escape Character”) che possono essere inclusi dagli utenti entro le istruzioni SQL.

Un utente malintenzionato può sfruttare questa vulnerabilità se possiede una adeguata conoscenza del codice utilizzato per confezionare le “SELECT” usate per effettuare le ricerche sul database.

Queste informazioni sono immediatamente recuperabili se lo statement SQL viene confezionato attraverso un Client Script (basta analizzare il codice della pagina caricata dal browser), ma sono deducibili rapidamente tramite poche prove sperimentali, anche quando si utilizzano FORM HTML e Server Script.

Per esempio, ipotizziamo di rilevare la presenza della seguente linea di codice:

statement := “SELECT * FROM user WHERE name = “’ +userName + “’ ;”

Questa istruzione consente di ritornare tutti i record contenenti uno specifico username presenti nella tabella “users”.

Se il valore della variabile userName è ottenuto riempiendo il campo di una FORM HTML che non viene controllata, l’attaccante può manipolare facilmente lo statement per aggirare i controlli e/o limitazioni d’uso nella specifica ricerca.

Nell’ipotesi che il codice precedente sia utilizzato per la procedura di autenticazione, l’attaccante può superare il controllo e ottenere la risposta attesa, anche non disponendo di alcuna password, settando userName al valore:

‘a’ or ‘t’ = ‘t’

L’uso dei caratteri speciali produce un SQL statement così composto:

SELECT * FROM users WHERE name = ‘a’ or ‘t’ = ‘t’;

L’azione associata alla richiesta SQL viene in tal caso sempre eseguita in quanto l’operazione ‘t’ = ‘t’ è sempre verificata.

error: Content is protected !!

Complimenti! Ti sei iscritto alla nostra Newsletter

C'è stato un errore durante l'invio della richiesta. Per favore riprova.

Computer Security will use the information you provide on this form to be in touch with you and to provide updates and marketing.