OWASP è un ente no profit è famose per avere ruolo nella trattazione di vulnerabilità nel mondo dei computer. Ha stilato una classifica per per le vulnerabilità più importanti:
La classificazione tiene conto:
Partiamo subito con un esempio per comprendere la vulnerabilità di injection.
Immaginiamo di avere :
Database:
Gli input inviati tramite form non sono controllati, dunque è possibile inviare sotto forma di input del codice eseguibile.
In questo esempio la richiesta della query viene modificata e di conseguenza ciò che restituirà non c'entrerà niente con il controllo del corretto username e password.
Ecco come potrebbe essere la query prima:
$query = "SELECT * FROM db where nome=' ".$_GET['nome']." ' and cognome=' ".$_GET['cognome']." ' and codice=' ".$_GET['codice']" ' ;" ;
php
Inviando l'input mostrato nel box, diventa:
$query = "SELECT * FROM db where nome=' ".$_GET['nome']." ' and cognome=' ".$_GET['cognome']." ' and codice=' ' OR nome = 'francesco' ;" ;
// si noti bene che è stato aggiunto ' OR nome = 'franceco
// la query è stata manipolata per ottenere un risultato diverso
// che rende vera la query, consentendo l'accesso alla piattaforma
php
La contromisura più banale è la validazione dell'input.