x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
ماهي ثغرة XSS أو Cross-Site Scripting و أضرارها و أنواعها و كيف تعمل
ثغرة XSS أو Cross-Site Scripting أصبحت واحدة من أشهر الثَّغرات في تطبيقات الويب، فهي تأتي في المرتبة السّابعة حسب تصنيف موقع OWASP لأشهر و أكثر 10 ثغرات انتشاراً في تطبيقات الويب لعام 2017، إضافةً إلى أنّه مصنّف في المرتبة الأولى من ناحية الخطورة ضمن مواقع أنظمة إدارة المحتوى CMS لعام 2019 حسب موقع imperva.صحيح أنَّ ثغرات الـ XSS لا تعدُّ من الثّغرات عالية الخطورة لأنّها لا تؤثّر بشكلٍ مباشر على الموقع أو الخادم، وإنما تؤثّر على جانب العميل الـ Client Side أو المستخدم، لكن هذا لا يمنع أنّ ثغرات XSS كانت سبباً أساسياً في اختراق أكبر الشركات و المواقع العالمية كما حدث في عام 2013 مع المنتديات الخاصة بموقع Ubuntu الشّهير و تمّ سرقة معلومات قرابة الـ 2 مليون مستخدم عن طريق استغلال ثغرة XSS بالموقع. كما أنَّ ثغرات الـ Xss ايضاً كانت سبباً رئيسياً في اختراق موقع Apple للمطوّرين خلال نفس الفترة. فمن المؤكّد أنّ هذا النّوع من الثّغرات قد يشكّل خطورة أكبر بكثير من خطورة ثغرات الـ SQL Injection في حال قام الهاكر باستغلالها بشكلٍ ذكي و قوي.
من خلال هذه الثّغرات يقوم شخص(المهاجم) بحقن كود برنامج خبيث عادةً ما يكون بلغة JavaScript بحيث يقوم المتصفح بتنفيذ أوامر الكود عندما يتم تحميل الصفحة عند الشخص الثّاني (الضحية).
ما هي الأضرار النّاتجة عن استغلال هذه الثغرة؟
1-اختراق حسابات المستخدمين.
2-سرقة ملفّات Cookies والتي تعدُّ من أهمّ الملفّات.
3-زرع Trojan horse في جهاز الضّحية والذي يعدُّ مقدمةً لهجماتٍ أخرى.
ماهي أنواع ثغرة XSS ؟
1-XSS Stored :
وتحدث هذه الثّغرة حينما يقوم المخترق باستغلال أحد مدخلات الموقع فيقوم بإرسال سكريبت يتم تخزينه في قاعدة البيانات Database، كأن يرسل السكريبت في مربع كتابة التعليقات في الموقع، أو على شكل رسالة، أو من أي مكان في الموقع يسمح بتخزين القيم في قاعدة البيانات، وحينما يأتي زائر ليستعرض الصفحة التي تحتوي على القيم القادمة من قاعدة البيانات يتم تنفيذ هذا السكريبت.
2-XSS Reflected :
تحدث حينما يستغل المخترق إحدى مدخلات الموقع دون الحاجة إلى تخزين السكريبت في قاعدة البيانات، فيقوم بإرسال رابط الموقع ممزوجاً بسكريبت ملغوم إلى الضحية عبر إيميل مثلاً، أو من خلال نشر هذا الرابط على موقع ما أو على مواقع السوشيال ميديا، وحينما يضغط الضّحية على الرّابط سيذهب به إلى الموقع وسيتم تنفيذ السكريبت المدمج معه وبالتّالي سيحصل المخترق على ما يشاء، إمّا عبر سرقة Cookies أو القيام بعمليات أخرى.
3- Dom XSS :
وهو شبيه جداً بالنّوع Reflected XSS، غير أنّه يرتكز بالأساس على التحكم في Dom الخاص بالصّفحة عبر تنفيذ سكريبت مكان إرسال قيمة معينة.
كيف يمكن منع هذه الثّغرة بالنسبة للمبرمجين؟
إنَّ منع البرمجة النّصية عبر المواقع (XSS) ليس بالأمر السهل. تعتمد أساليب المنع المحددة على النوع الفرعي ثغرة XSS، وعلى سياق استخدام مدخلات المستخدم، وعلى إطار عمل البرمجة.
هناك بعض المبادئ الإستراتيجية العامة التي يجب عليك اتباعها للحفاظ على أمان تطبيق الويب الخاص بك.
1- عدم الوثوق بأي من المدخلات التي يقوم بها المستخدم.
2-استخدام escaping / encoding.
3-استخدام سياسة أمان المحتوى CSP.
4-استخدام HttpOnly flag .
كيف يمكن منع هذه الثغرة بالنسبة للمستخدمين؟
1-تأكّد من أنَّك تستخدم آخر تحديث للمتصفح مع تفعيل كافّة خيارات الأمان الخاصة بالمتصفح بما في ذلك XSS Filter .
2-تسجيل الخروج مباشرةً بعد الانتهاء من تصفح أيّ موقع.
3-التّأكد من الروابط التي يتم الضغط عليها.