
Filechucker Prova de Conceito de bypass de filtro
Em filechucker.cgi versão 5.09 e filechucker_prefs.cgi versão 4.99e-free-e02 existe uma bypass de filtro, no upload, que pode levar à execução remota de código desde que o usuário envie um arquivo malicioso.
A bypass ocorre quando o filechucker tenta filtrar a extensão do arquivo e testar contra a configuração de extensões não aceitáveis do filechucker_prefs:
$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.#
O acima é a configuração padrão quando baixado pela primeira vez. como você pode ver, certas extensões de arquivo não são permitidas. A bypass ocorre quando você anexa uma de três coisas ao nome do arquivo:
.%%<EXT>.%<EX>%<T>%2E.%<EXT>A primeira e a terceira nem sempre funcionam a segunda é quase garantida de funcionar com sucesso. Por exemplo, se tivermos o nome de arquivo 491f21bfbe8fc71eafc9ed76565b0bb4.%ph%p, depois de filtrado pelo acima, o arquivo será enviado como 491f21bfbe8fc71eafc9ed76565b0bb4.php.
Existem alguns Google dorks que permitem que você encontre o arquivo filechucker.cgi.
inurl:filechucker.cgiinurl:/cgi-bin/filechuckerO vídeo abaixo é uma prova de conceito feita no site do encodables (a demo):