
Filechucker : preuve de concept de contournement de filtre
Dans filechucker.cgi version 5.09 et filechucker_prefs.cgi version 4.99e-free-e02, il existe un contournement du filtre, lors du téléversement, qui peut conduire à une exécution de code à distance si l'utilisateur téléverse un fichier malveillant.
Le contournement se produit lorsque filechucker tente de filtrer l'extension du fichier et de la tester par rapport à la configuration de filechucker_prefs concernant les extensions non acceptées :
$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.#
La configuration ci-dessus est celle par défaut lors du premier téléchargement. Comme vous pouvez le voir, certaines extensions de fichiers ne sont pas autorisées. Le contournement se produit lorsque vous ajoutez l'une des trois choses suivantes au nom du fichier :
.%%<EXT>.%<EX>%<T>%2E.%<EXT>La première et la troisième ne fonctionnent pas toujours, la deuxième réussit presque à coup sûr. Par exemple, si nous avons le nom de fichier 491f21bfbe8fc71eafc9ed76565b0bb4.%ph%p, une fois filtré par la configuration ci-dessus, le fichier sera téléversé sous le nom 491f21bfbe8fc71eafc9ed76565b0bb4.php.
Il existe quelques Google dorks pour vous permettre de trouver le fichier filechucker.cgi.
inurl:filechucker.cgiinurl:/cgi-bin/filechuckerLa vidéo ci-dessous est une preuve de concept réalisée sur le site Web d'encodables (la démo) :