di: Luca Carettoni 06 Giugno 2007
A seconda del sistema operativo in oggetto dobbiamo valutare la definizione di percorsi validi:
Sistemi Unix*
"/" root directory "/" directory separator
Sistemi Windows
"<drive letter>:\" root directory "\" ma anche "/" directory separator
Sistemi Classic Mac OS
"<drive letter>:" root directory ":" directory separator
Inoltre vanno considerate anche le codifiche URL encoding e double URL encoding oltre a Unicode/UTF-8 Encoding:
%2e%2e%2f diventa ../ %2e%2e/ diventa ../ ..%2f diventa ../ %2e%2e%5c diventa ..\ %2e%2e\ diventa ..\ ..%5c diventa ..\ %252e%252e%255c diventa ..\ ..%255c diventa ..\ e così via ..%c0%af diventa ../ ..%c1%9c diventa ..\
Per aiutarci nel test delle nostre applicazioni possiamo utilizzare gli strumenti presentati in un precedente articolo. Curiosamente, è da segnalare come l'uso di strumenti online per la ricerca e condivisione di codice sorgente Google CodeSearch, Koders abbia agevolato la ricerca di questo genere di vulnerabilità all'interno di software open source pubblicati su Internet.
Usando la seguente query possiamo, ad esempio, trovare in pochi secondi tutte le direttive di inclusione nei progetti pubblicati, sviluppati in PHP.
lang:php (include|require)(_once)?\s*['"(]?\s*\$_(GET|POST|COOKIE)
Il problema presentato è una naturale conseguenza della mancata validazione dell'input all'interno del software applicativo che utilizziamo o che abbiamo sviluppato. I moderni linguaggi di programmazione per il web consentono l'utilizzo di librerie per la sanitizzazione dell'input che possono quindi essere integrate nei propri progetti al fine di evitare l'immissione di caratteri e stringhe dannose. Come sempre si consiglia l'uso di framework consolidati e ritenuti sicuri dall'intera comunità di esperti, in aggiunta all'utilizzo di politiche di whitelisting piuttosto che di blacklisting.
Esattamente come per altre problematiche nell'ambito delle applicazioni online si può cercare di mitigare eventuali mancanze dei filtri di validazione utilizzando degli approcci diversi: si può cercare di risolvere il problema a livello di richieste HTTP utilizzando dei firewall applicativi, come il noto Apache ModSecurity, che filtrino le richieste oppure si può cercare di limitare i danni impostando correttamente i privilegi a livello di sistema operativo.
Guida SQL Injection con SqlmapScopriamo se le nostre applicazioni web sono vulnerabili alle SQL... |
Guida sicurezza applicazioni WebLe tecniche di attacco più comuni, i metodi per verificare la... |
Guida Sicurezza wirelessQuali sono i pericoli di sicurezza di una rete senza filo e quali... |
Ogni lunedì, direttamente nella tua e-mail: approfondimenti e bollettini su virus, vulnerabilità e sicurezza informatica.
Iscriviti alla newsletter
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |