
Filechucker Filter-Bypass Proof of Concept
In filechucker.cgi Version 5.09 und filechucker_prefs.cgi Version 4.99e-free-e02 gibt es einen Filter-Bypass beim Upload, der zu Remote-Code-Ausführung führen kann, sofern der Benutzer eine schädliche Datei hochlädt.
Der Bypass tritt auf, wenn filechucker versucht, die Dateierweiterung herauszufiltern und gegen die Konfiguration nicht akzeptabler Erweiterungen in filechucker_prefs zu testen:
$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.#
Das Obige ist die Standardkonfiguration beim ersten Herunterladen. wie Sie sehen können, sind bestimmte Dateierweiterungen nicht erlaubt. Der Bypass tritt auf, wenn Sie eine der folgenden drei Sachen an den Dateinamen anhängen:
.%%<EXT>.%<EX>%<T>%2E.%<EXT>Die erste und dritte funktionieren nicht immer, die zweite funktioniert mit ziemlicher Sicherheit erfolgreich. Wenn wir zum Beispiel den Dateinamen 491f21bfbe8fc71eafc9ed76565b0bb4.%ph%p haben, wird der Dateiname nach dem Durchlaufen des obigen Filters als 491f21bfbe8fc71eafc9ed76565b0bb4.php hochgeladen.
Es gibt ein paar Google-Dorks, mit denen Sie die Datei filechucker.cgi finden können.
inurl:filechucker.cgiinurl:/cgi-bin/filechuckerDas folgende Video ist ein Proof of Concept, aufgenommen auf der Website von encodables (der Demo):