
Filechucker filter bypass Proof Of Concept
В filechucker.cgi версии 5.09 и filechucker_prefs.cgi версии 4.99e-free-e02 присутствует обход фильтра при загрузке файлов, который может привести к удаленному выполнению кода, если пользователь загрузит вредоносный файл.
Обход происходит, когда filechucker пытается отфильтровать расширение файла и проверить его через конфигурацию 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.#
Выше приведена конфигурация по умолчанию при первой загрузке. Как видите, некоторые расширения файлов запрещены. Обход происходит, когда вы добавляете к имени файла одну из трех вещей:
.%%<EXT>.%<EX>%<T>%2E.%<EXT>Первая и третья не всегда работают, вторая почти гарантированно работает. Например, если у нас есть имя файла 491f21bfbe8fc71eafc9ed76565b0bb4.%ph%p, то после фильтрации через вышеуказанное имя файла будет загружено как 491f21bfbe8fc71eafc9ed76565b0bb4.php.
Существует несколько Google dorks, позволяющих найти файл filechucker.cgi.
inurl:filechucker.cgiinurl:/cgi-bin/filechuckerВидео ниже является доказательством концепции, снятым на сайте encodables (демо):