
Filechucker تجاوز الفلتر إثبات المفهوم
في 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.
هناك بعض دلائل جوجل التي تسمح لك بالعثور على ملف filechucker.cgi.
inurl:filechucker.cgiinurl:/cgi-bin/filechuckerالفيديو أدناه هو دليل إثبات تم التقاطه من موقع encodables (العرض التجريبي):