
Filechucker bypass de filtros - Prueba de Concepto
En filechucker.cgi versión 5.09 y filechucker_prefs.cgi versión 4.99e-free-e02 hay una evasión de filtro, al subir archivos, que puede conducir a la ejecución remota de código siempre que el usuario suba un archivo malicioso.
La evasión ocurre cuando filechucker intenta filtrar la extensión del archivo y probarla contra la configuración de filechucker_prefs de extensiones no aceptadas:
$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.#
Lo anterior es la configuración predeterminada cuando se descarga por primera vez. Como puedes ver, ciertas extensiones de archivo no están permitidas. La evasión ocurre cuando se añade una de estas tres cosas al nombre del archivo:
.%%<EXT>.%<EX>%<T>%2E.%<EXT>La primera y la tercera no siempre funcionan; la segunda casi siempre funciona con éxito. Por ejemplo, si tenemos el nombre de archivo 491f21bfbe8fc71eafc9ed76565b0bb4.%ph%p, una vez filtrado con lo anterior, el archivo se subirá como 491f21bfbe8fc71eafc9ed76565b0bb4.php.
Hay un par de Google dorks que te permiten encontrar el archivo filechucker.cgi.
inurl:filechucker.cgiinurl:/cgi-bin/filechuckerEl siguiente video es una prueba de concepto tomada del sitio web de encodables (la demo):