Perchè le SQL Injection Sono Ancora Pericolose

La SQL Injection rimane oggi, dopo oltre quindici anni dalla sua apparizione pubblica, una delle principali tecniche per attaccare una web application, basti guardare cosa sta succedendo ad un CMS popolare e diffuso come Drupal.

In breve ricordo che per SQL Injection si intende la possibilità da parte di un attacker, di iniettare codice arbitrario all’interno di una interrogazione SQL, sovvertendone il comportamento, e aprendo le porte dell’aggressore all’accesso non autorizzato a dati, al sistema, o addirittura ad una rete.

Questo post che scrissi alcuni anni fa dimostra come ottenere i massimi privilegi di un sistema partendo da una vulnerabilità SQL Injection.

La soluzione del problema sarebbe abbastanza semplice, ovvero trattare in maniera adeguata i parametri di input. L’utilizzo di framework riduce il rischio ma non lo annulla. In più, l’ignoranza e l’arroganza di presunti o sedicenti programmatori fa il resto.

Ma anche nel caso in cui i parametri venissero adeguatamente trattati, permane comunque il rischio di incappare in un diverso tipoo di attacco: la Second Order SQL Injection.

In qusto genere di attacco, l’injection non viene sfruttata direttamente nella pagina  in cui viene infiltrata, pagina dove potrebbe anche essere effettuata una corretta input sanitization, ma l’attacco viene portato in un altro punto secondario, dove la query viene richiamata senza un adeguato controllo dei parametri.

In questo interessante post, Davie Girardi detto “GiRa” dimostra come funziona questo attacco, e mostra anche un interessante approccio su come usare uno strumento ampiamente utilizzato per sfruttare SQL Injection convenzionali durante un penetration  test, sto parlando di Sqlmap, insieme ad uno script artigianale creato ad hoc.

Dopo tanti anni le SQL Injection sono ancora tra noi, e le tecniche ortodosse per evitarle possono non bastare. L’unico rimedio è la formazione continua del personale, dei programmatori, degli addetti alla sicurezza, per fare in modo che la conoscenza reale del pericolo si adeguata ai tempi.