Per chi non avesse ancora aggiornato Joomla all’ultima versione 1.5.15 segnalo l’ennesima vulnerabilità trovata nelle versioni precedenti.
Questa volta si tratta di una Remote Command Execution che sfruttando una vulnerabilità dell’utilizzatissimo TinyMCE permette di uploadare file che, teoricamente, dovrebbero essere proibiti. La vulnerabilità è stata scoperta dall’italiano Luca “daath” De Fulgentis che ha illustrato nel dettaglio l‘exploit nel suo blog.
Dal sito di Offensive-Security, che andrà a sostituire il noto Milw0rm, ormai chiuso, è possibile scaricare l’exploit Php che consente di uploadare qualsiasi tipo di file semplicemente eseguend l’exploit php dalla propria shell.
Come detto in precedenza l’hack sfrutta una vulnerabilità del TinyMCE. Questo editor utilizza un array dove vengono dichiarate le estensioni dei file che non possono essere uploadate ma modificando opportunamente gli Header HTTP è possibile uploadare un file con un’estensione accettata e successivamente far effettuare il rename del file allo stesso TinyMCE.
Ovviamente vi è un sistema di “sicurezza” nello script dell’editor ma, purtroppo, si tratta di una semplice verifica di un hash MD5 generato dalla concatenazione della path assoluta con una variabile chiamata “$tinybrowser['obfuscate']” che è settata di default a “s0merand0mjunk!!!111″ nel file “config_tinybrowser.php” che trovate al seguente percorso:
http://<path_joomla>/plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/config_tinybrowser.php
Questo invece il sistema di “sicurezza” (o meglio, la vulnerabilità) del file “upload_file.php” che verifica l’Hash MD5:
L’exploit creato da daath una volta indicato il “sito vittima” per prima cosa provvede a bypassare questo meccanismo effettuando un Path Disclosure. Con questa tecnica si interroga un file in modo non corretto così da far mostrare a video un tipico errore PHP che riporta la path assoluta del file in errore. Una volta ottenuta questa informazione si potrà ricreare l’Hash MD5 (path assoluta + ‘s0merand0mjunk!!!111′) tramite il quale poter lanciare una POST Http per l’upload del file. Il file, ovviamente, dovrà avere un’estensione valida come, ad esempio, “.jpg”.
Una volta effettuato l’upload si effettua una seconda interrogazione Http inviando i dati necessari a far eseguire il rename del file da “.jpg” (o qualunque estensione è stata scelta) a “.php”.
A questo punto si avrà una shell sul sito e si potra effettuare qualsiasi azione sia consentita all’utente web del sito vittima.
Come detto all’inzio dell’articolo provvedete sempre ad aggiornare alle ultime release le vostre applicazioni web!



12 febbraio 2010 at 11:30
ciao
per un video per il weekend provo a vedere se qualcuno ne ha già fatti o se trovo il tempo te lo faccio io.
dato che sei interessato a questa cosa intanto mi permetto di segnalarti quest’altra serie di falle che son state individuate sempre nel Tiny MCE Editor
http://www.exploit-db.com/exploits/11358
ciao
capn3m0
11 febbraio 2010 at 10:27
ciao senti dove posso vedere un video per rendere meglio l’idea…