####################################################################### Luigi Auriemma Applicazione: WWW File Share Pro http://www.wfshome.com Versioni: <= 2.42 Piattaforma: Windows Bugs: - sovrascrittura arbitraria dei files del server - crash remoto - aggiramento delle directory protette Exploitation: remoto Data: 14 Jan 2004 Autore: Luigi Auriemma e-mail: aluigi@autistici.org web: aluigi.org ####################################################################### 1) Introduzione 2) Bugs 3) The Code 4) Fix ####################################################################### =============== 1) Introduzione =============== Dal sito del produttore: "WWW File Share Pro e' un piccolo server HTTP che puo' aiutarti a condividere files con i tuoi amici. Possono scaricare files dal tuo computer o trasferirne dai loro. Semplicemente specificando una directory per i downloads ed una per gli uploads. ... WWW File Share Pro supporta la protezione tramite password. Se abiliti tale protezione solo gli utenti autorizzati potranno accedere al tuo servizio." ####################################################################### ======= 2) Bugs ======= A] Sovrascrittura arbitraria dei files del server ------------------------------------------------- Il programma ha un'opzione abilitata di default che permette alle persone di trasferire i propri files in una directory dedicata agli uploads specificata dall'amministratore del server. Esiste una vulnerabilita' che permette a qualsiasi utente di creare o sovrascrivere i files nel server remoto utilizzando semplicemente il pattern punto-punto nel nome del file da passare al server. Il seguente e' il giusto parametro inviato al server: Content-Disposition: form-data; name="file"; filename="file.txt" E questo e' il parametro modificato per sfruttare la vulnerabilita': Content-Disposition: form-data; name="file"; filename="../../../file.txt" B] Crash remoto --------------- Un attacker puo' far crashare il server remoto inviando molti bytes usando il comando POST. Gli effetti sono CPU al 100% se i dati non sono troppi (meno di 2 megabytes) ed il crash del server od il completo congelamento del sistema se i dati sono maggiori. C] Aggiramento delle directory protette --------------------------------------- Se il server ha alcune directory protette l'attacker puo' aggirare il processo di autorizzazione guadagnando pieno accesso ad esse. Questo bug affligge solo le singole directory protette e NON la protezione "del sito completo" (opzione in User/Password). Per sfruttare il bug deve essere usato un punto alla fine dell'URL od uno o piu' slash o backslash all'inizio dell'URI. ####################################################################### =========== 3) The Code =========== A] Sovrascrittura arbitraria dei files del server --------------------------------------- Quello seguente e' un esempio di dati da inviare via telnet o netcat al server che crea un file chiamato badfile.txt tre directory sopra la cartella usata per gli upload (quindi solitamente il file sara' c:\badfile.txt): http://aluigi.org/poc/wfshare-up.txt B] Crash remoto --------------- I seguenti sono degli esempi basati su 2 miei programmi generici: http://aluigi.org/poc/webpostmem.zip http://aluigi.org/mytoolz/poststrike.zip Per testare la CPU al 100% si puo' usare "webpostmem 2000 1 server" Per testare il crash del server si puo' usare webpostmem con il parametro iniziale piu' grande od usare "poststrike server" Per provare a congelare il sistem si puo' lanciare "webpostmem 1000 10 server" e provare altri metodi. C] Aggiramento delle directory protette --------------------------------------- http://server/directory./ http://server/\directory/ http://server///directory/ "GET \directory/ HTTP/1.0" ####################################################################### ====== 4) Fix ====== Versione 2.48 o la patch di aggiornamento se la versione 2.46 e' gia' installata nel sistema. Nota: la versione 2.46 corregge tutti i bugs eccetto un tipo di aggiramento delle directory protette corretto nella versione 2.48. #######################################################################