
Filechucker Prova di concetto di bypass del filtro
In filechucker.cgi versione 5.09 e filechucker_prefs.cgi versione 4.99e-free-e02 c'è un bypass del filtro, al momento del caricamento, che può portare all'esecuzione remota di codice se l'utente carica un file dannoso.
Il bypass si verifica quando filechucker tenta di filtrare l'estensione del file e di verificarla rispetto alla configurazione di filechucker_prefs delle estensioni non accettabili:
$PREF{only_allow_these_file_extensions} = '';
$PREF{disallow_these_file_extensions} = '.exe .php .php3 .php4 .php5 .phtml .cgi .pl .sh .py .js .htaccess .htpasswd .cmd .bat .ftpquota';
$PREF{allow_files_without_extensions} = 'yes';
$PREF{disallow_these_strings_within_filenames} = '\.php \.asp \.cgi \.pl$ \.plx torrent dvdrip'; # can include regexes, so periods must be escaped. must be in single quotes.#
Quella sopra è la configurazione predefinita al primo download. Come puoi vedere, alcune estensioni di file non sono consentite. Il bypass si verifica quando si aggiunge una di queste tre cose al nome del file:
.%%<EXT>.%<EX>%<T>%2E.%<EXT>Il primo e il terzo non funzionano sempre; il secondo è quasi garantito che funzioni correttamente. Ad esempio, se abbiamo il nome file 491f21bfbe8fc71eafc9ed76565b0bb4.%ph%p, una volta filtrato tramite quanto sopra, il file verrà caricato come 491f21bfbe8fc71eafc9ed76565b0bb4.php.
Ci sono un paio di Google dorks per permetterti di trovare il file filechucker.cgi.
inurl:filechucker.cgiinurl:/cgi-bin/filechuckerIl video qui sotto è una prova di concetto realizzata sul sito di encodables (la demo):