In questa mini-guida affronteremo il tema delle SQL Injection utilizzando SQLMap, uno strumento open source che automatizza l'intero processo di verifica ed exploitation.
Introduzione alle SQL Injection
La SQL injection è una tecnica di hacking che mira ad iniettare del codice sfruttando vulnerabilità di una web application che fa uso di database di tipo SQL. La vulnerabilità è dovuta alla mancanza di controlli sui dati ricevuti in input. Comandi SQL sono quindi iniettati tramite query nel database di un'applicazione web al fine di autenticarsi con i massimi privilegi in aree protette del sito anche senza essere in possesso delle credenziali d'accesso e di visualizzare e/o alterare dati sensibili.
Verificare se un sito sia o meno vulnerabile a questo tipo di attacco è relativamente semplice, il più delle volte basta inserire un semplice apice (') nell'url per ottenere il classico messaggio di errore ma più in generale si consideri il seguente esempio:
http://192.168.136.131/sqlmap/mysql/get_int.php?id=1
si supponga che:
http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=1
restituisca lo stesso risultato dell'esempio precedente e che:
http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=2
dia in output un altro risultato. In questo caso ci troveremo di fronte alla possibilità di iniettare del codice SQL nel parametro "ID" della pagina "PHP".