ثغرة أمنية تصيب أكثر من مليون موقع إلكتروني إذا كان بموقعك [File Manager]

ثغرة أمنية تصيب أكثر من مليون موقع إذا كان بموقعك [File Manager]

في 15 فبراير 2024، تم اكتشاف ثغرة [Cross-Site Request Forgery to Local JS File Inclusion] في إضافة [File Manager] المثبتة في أكثر من مليون موقع ويمكن الاستفادة من هذه الثغرة الأمنية لتحقيق تنفيذ التعليمات البرمجية عن بعد (RCE) عبر طلب مزور، بشرط أن يتمكن المهاجم من خداع مسؤول الموقع لتنفيذ إجراء مثل النقر فوق رابط.

المحتوى

ما هي إضافة File Manager؟

يتيح لك مدير الملفات تحرير الملفات والمجلدات وحذفها وتحميلها وتنزيلها وضغطها ونسخها ولصقها مباشرةً من واجهة وردبريس الخلفية. دون الحاجة لاستخدام FTP لإدارة ملفاتك ونقلها من موقع إلى آخر.

الإصدار المٌصاب

ثغـرة أمنية في المواقــع الإلكتـرونية[File Manager]التي تستخـدم تؤثر على أكثر من مليون! موقع ويب

التحليل الفني للثغرة

تستخدم الإضافة elFinder، وهو مدير ملفات مفتوح المصدر يستند إلى JavaScript.
لسوء الحظ، يسمح التنفيذ غير الآمن لوظيفة تحميل ملفات الأصول الإدارية للإضافة بتضمين ملف JS المحلي في الإصدارات الضعيفة. يكشف فحص الكود أن المكون الإضافي يستخدم دالة ffm_admin_things() في كلاس mk_file_folder_manager لتحميل ملفات البرامج النصية والأنماط في صفحة الإدارة “wp_file_manager”.

				
					$lang = isset($_GET['lang']) && !empty($_GET['lang']) ? sanitize_text_field(htmlentities($_GET['lang'])) : '';
				
			
				
					if (!empty($lang)) {
    set_transient('wp_fm_lang', $lang, 60 * 60 * 720);
    wp_enqueue_script('fm_lang', plugins_url('lib/js/i18n/elfinder.'.$lang.'.js', __FILE__), '', $this->ver);
}
				
			

يتم تحميل ملف JS الخاص بلغة elFinder استنادًا إلى قيمة إدخال ‘lang’ GET. على الرغم من استخدام وظيفة التعقيم sanitize_text_field() للقيمة، إلا أنها غير مناسبة لأن هذه القيمة تُستخدم في ملف يتضمن الاستدعاء. بدلاً من ذلك، يجب استخدام وظيفة التعقيم realpath()، وهي وظيفة تعقيم اسم المسار، لمنع تضمين الملف المحلي. في الإصدارات الضعيفة من البرنامج الإضافي، يتم أيضًا تمرير قيمة إدخال GET 'lang' كباراميتر إلى ملف file_manager_free_shortcode_admin.js.

				
					wp_register_script( "file_manager_free_shortcode_admin", plugins_url('js/file_manager_free_shortcode_admin.js',  __FILE__ ), array(), rand(0,9999) );
wp_localize_script( 'file_manager_free_shortcode_admin', 'fmfparams', array(
     'ajaxurl' => admin_url('admin-ajax.php'),
     'nonce' => $fm_nonce,
     'plugin_url' => plugins_url('lib/', __FILE__),
     'lang' => isset($_GET['lang']) ? sanitize_text_field(htmlentities($_GET['lang'])) : (($wp_fm_lang !== false) ? $wp_fm_lang : 'en'),
     'fm_enable_media_upload' => (isset($opt['fm_enable_media_upload']) && $opt['fm_enable_media_upload'] == '1') ? '1' : '0',
     'is_multisite'=> is_multisite() ? '1' : '0',
     'network_url'=> is_multisite() ? network_home_url() : '',
     )
);
				
			

في ملف JS هذا، تتم تهيئة elFinder، ويتم تمرير قيمة اللغة كباراميتر.

				
					jQuery("#wp_file_manager")
  .elfinder({
				
			
				
					lang: fmlang,
				
			
				
					    })
    .elfinder("instance");
});
				
			

يقوم elFinder بتحميل ملف JS للغة، وتضيف  دالة loadScript() علامة برنامج نصي بعنوان URL المقدم، والذي لم يتم تنظيفه داخل elFinder.

				
					var lang   = self.lang,
    langJs = self.i18nBaseUrl + 'elfinder.' + lang + '.js',
				
			
				
					self.loadScript([langJs], function() {
    dfd.resolve();
}
				
			

يتم بعد ذلك تحميل ملف اللغة JS بالتوازي مع PHP وأيضًا مع elFinder JS. يسمح هذا التطهير غير المناسب للمهاجم بتضمين ملفات JavaScript محلية عشوائية. ومع ذلك، نظرًا لأن تحميل هذا الملف يقتصر على صفحة الإدارة التي يمكن للمسؤولين فقط الوصول إليها، يحتاج المهاجم إلى خداع مسؤول الموقع لتنفيذ إجراء، مثل النقر فوق رابط.

الجدول الزمني

13 فبراير 2024 – أرسل تقرير بوجود الثغرة في File Manager. 

  • 15 فبراير 2024 – تم التحقق من صحة التقرير.
  • 15 فبراير 2024 – بدء الاتصال مع مبرمجي الإضافة وطُلب منهم تأكيد البريد الوارد للتعامل مع المناقشة.
  • 15 فبراير 2024 – أرسل التقرير للمسؤولين وأقروا به وبدأو بالعمل على الإصلاح.
  • 15 مارس 2024 – تم إصدار النسخة المصححة بالكامل من الإضافة، 7.2.5.

رسالة لعملاءي

كافة عملاءي الذين اشتركوا بخدمة الدعم التقني بأمان ويتم تحديث مواقعهم ومشاريعهم على الفور ويتم إرسال التقارير لهم أولًا بأول، إذا لم تكن من عملاءي الذين استفادوا من خدمة الدعم التقني فيمكنك طلب فحص موقعك مجانًا دون أي مقابل وإبلاغك بالمشاكل والثغرات بموقعك وتفاصيل الباقات إذا كنت مهتمًا بتأمين وحماية مشروعك والخدمات التي ستحصل عليها تجدها بالمقالة.

الدعم التقني

أوصيك إذا لم تكن تقنيًا بتوظيف أحد المتخصصين لرعاية وفحص موقعك وتحديثه وصيانته أولًا بأول فلا يمكنك أبدًا الحصول على موقع آمن وينافس ويظهر بشكل احترافي للعملاء دون وجود دعم تقني دوري للموقع فلعلك لاحظت التحديثات والترقيات الدائمة لتطبيقات هواتفك أو نظام تشغيلك أو متصفحك وحتى برامح فحص الفيروسات نفسها.. إن التحديثات والتأمينات باتت ضرورة ملحة بعدما أصبحت الهجمات لا تبقي ولا تذر أحدًا حتى المنصات الكبيرة والمواقع المشهورة.

فلم يعد الدعم التقني ووجود متخصص معك أمر ترفيهي بل أصبح من البديهيات إذا كنت تخشى على كيانك الإلكتروني وتخشى على ما أنفقت فيه وتطمح للمنافسة والتوسع على شبكة التواصل الاجتماعي، ولأجل ذلك قمت بإعداد هذه الخدمة عبر باقات متنوعة وخدمة منفصلة شهد لها عملائي عبر تعليقاتهم بالموقع أو عبر حسابي على لينكدإن بكل إيجابية وترحاب.

الشهر الواحد

دعم الصيانة والتحديثات
$250
$ 199
99
شهر/
  • صيانة الأعطال التقنية
  • تحديث الأنظمة وحمايتها
  • تأمين المواقع والتطبيقات
  • ضبط وتأمين الاستضافات
  • تصحيح الأكواد البرمجية
  • حماية الملفات البرمجية
  • فحص الفيروسات الدوري
  • نسخ احتياطي آمن

ربع سنوي

دعم الصيانة والتحديثات
$750
$ 569
99
3 أشهر/
  • صيانة الأعطال التقنية
  • تحديث الأنظمة وحمايتها
  • تأمين المواقع والتطبيقات
  • ضبط وتأمين الاستضافات
  • تصحيح الأكواد البرمجية
  • حماية الملفات البرمجية
  • فحص الفيروسات الدوري
  • نسخ احتياطي آمن
شائعة

نصف سنوي

دعم الصيانة والتحديثات
$1500
$ 1109
99
6 أشهر/
  • صيانة الأعطال التقنية
  • تحديث الأنظمة وحمايتها
  • تأمين المواقع والتطبيقات
  • ضبط وتأمين الاستضافات
  • تصحيح الأكواد البرمجية
  • حماية الملفات البرمجية
  • فحص الفيروسات الدوري
  • نسخ احتياطي آمن

العام الكامل

دعم الصيانة والتحديثات
$3000
$ 2159
99
عام/
  • صيانة الأعطال التقنية
  • تحديث الأنظمة وحمايتها
  • تأمين المواقع والتطبيقات
  • ضبط وتأمين الاستضافات
  • تصحيح الأكواد البرمجية
  • حماية الملفات البرمجية
  • فحص الفيروسات الدوري
  • نسخ احتياطي آمن
الأوفر

ختام المقالة

أرجو أن أكون قد وفقت في إظهار أهمية وخطورة الدعم التقني وأن يكون سردي قد نال إعجابكم وأقبل تعليقاتكم بالأسفل ويسعدني كافة مشاركتكم.. هذه الخدمة لها صفحة منفصلة بها كافة التفاصيل في حالة احتياجك لهذه الخدمة من أجل موقعك الإلكتروني أو تطبيقك ولا تنسى زائري الكريم بتحديث الإضافة الآن لآخر نسخة لكي تكون بأمان حتى توظفني وأفحص موقعك بالكامل وأعطيك تقرير مفصل لكافة أجزاء كيانك البرمجي.

باقات الدعم التقني للأنظمة
للمواقع الإلكترونية والاستضافات وتطبيقات الهواتف وأنظمة سطح المكتب

شارك المقالة للإفادة

نبذة عن الكاتب

م. أحمد أسامة
م. أحمد أسامة
مهندس برمجيات مصري ● خبرة تزيد عن تسعة أعوام ● مدير لشركة [TGHEZ LTD] - أقدم خدمات تصميم وبرمجة وحماية مواقع الويب وإنشاء تطبيقات الجوال وتوزيع الاستضافات ● شريكًا مؤسسًا لشركة كريتكس كود بأمستردام بهولندا ومهندس مستقل بمنصة المدرسة لتعليم البرمجة بالعربية ● لدي عملاء من 15 دولة حول العالم.

لمعرفة المقالات الجديدة والتواصل معي تابعني عبر:

اختراقات ذات صلة

اكتب تعليقًا

مشترك
إخطار
guest
التقييم
إلى أي درجة أعجبك عملي/مقالتي
0 تعليقات
تعليقات مضمنة
عرض جميع التعليقات

لا يمكنك طباعة شيء من الموقع

Scroll to Top