Tecniche errate di prevenzione, un esempio reale.
Esistono diverse metodologie per proteggere i propri applicativi da minacce appartenenti alla famiglia SQL Injection e derivate. Oggi, durante la ricerca di un nuovo fornitore per la mia linea ADSL domestica, ho incontrato uno dei più banali sistemi di precauzione anti SQL Injection al momento diffusi sulla rete. Stiamo parlando della validazione dei caratteri tramite Javascript.
Il codice alla base di questi sistemi è qualcosa di molto paragonabile a quello che segue
var checkOK = "0123456789";
var checkStr = theForm.prefisso.value + theForm.Mionum_tel.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
Questo codice non fa altro che, verificare, carattere per carattere, la genuinità dei dati input confrontandoli con una whitelist statica (checkOK). Come dimostrato dall'immagine, provando ad inserire un carattere non valido, viene restituito un messaggio di errore il quale informa dell'avvenuta interruzione della procedura.

Ormai tutti sappiamo che Javascript è una delle maggiori cause di problematiche relative alla sicurezza informatica web-oriented e pertanto, dovremmo evitarne il suo utilizzo in ambienti critical ed enterprise. Bypassare protezioni di questo tipo è una delle operazioni più semplici che si possano intraprendere durante una sessione di penetration testing. Javascript è un linguaggio di scripting, il quale fortunatamente può essere disabilitato dalla quasi totalità dei browser in circolazione. Grazie a questa funzionalità è possibile "spegnere" completamente il sistema di protezione e rilevare possibili "injection-point".
Ecco cosa accade quando si disattiva Javascript su un applicativo di Eutelia e si prova ad inserire alcuni codici "imprevisti".

Riferimenti:
Per questo argomento, credo che non ci sia miglior riferimento che un video che dimostra come sia facile eludere protezioni javascript simili a quelle utilizzate da Eutelia.
January 27th, 2008 - 19:35
molto interessante;) il mio bagaglio per quanto riguarda l’hacking si stà rimpiendo sempre più grazie a questo sito ^^ una cosa che non ho capito xo è che cosa sostiuisca nel sorgente..in pratica toglie il code di validazione che hai postato anche te se non vado errato..non si vede molto bene il video..