استكشاف عالم ثغرات XSS: الأنواع و طرق الكشف عنها و منعها

Vulnerabilities
سنتناول في هذه المقالة الأنواع المختلفة من ثغرات XSS ، والـ Payloads الشائعة المستخدمة في الهجمات ، وتقنيات اكتشاف ثغرات XSS
Ahmed Shibl
Feb. 20, 2023, 4:25 p.m.
ahmedshipl
استكشاف عالم ثغرات XSS: الأنواع و طرق الكشف عنها و منعها

تعد الـ Cross-site Script (XSS) ثغرة أمنية تسمح للمهاجمين بحقن نصوص javascript ضارة في صفحات الويب التي يعرضها المستخدمون الآخرون. يمكن استخدام هذا النوع من الهجوم لسرقة معلومات حساسة مثل بيانات اعتماد تسجيل الدخول وملفات تعريف ارتباط الجلسة والبيانات الشخصية. يمكن أيضًا استخدام هجمات XSS لتنفيذ إجراءات غير مصرح بها نيابة عن الضحية.

أنواع ثغرة الـ XSS:

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

Stored XSS: يُعرف هذا أيضًا باسم persistent XSS. في هذه الحالة ، يقوم المهاجم بحقن تعليمات برمجية ضارة في صفحة ويب يتم تخزينها بعد ذلك على الخادم ويتم تقديمها لجميع زوار الصفحة اللاحقين. يمكن أن يؤدي هذا إلى تأثر عدد كبير من المستخدمين بهجوم واحد.

DOM-Based XSS: يحدث هذا النوع من الهجوم عندما يقرأ JavaScript code من جانب العميل البيانات من عنصر DOM معرض للثغره ويستخدمها لتحديث محتوى HTML. يمكن للمهاجم بعد ذلك إدخال  JavaScript Code ضار يمكنه سرقة بيانات المستخدم أو تنفيذ إجراءات ضارة أخرى.

البحث عن ثغرة XSS:

الاختبار اليدوي: يتضمن هذا الاختبار عملية حقن لكل حقل إدخال في التطبيق لمعرفة ما إذا كان أي منها عرضة لهجمات XSS.

الاختبار الآلي: هناك عدد من الأدوات الآلية المتاحة التي يمكنها فحص تطبيق بحثًا عن ثغرات XSS. يمكن أن تساعد هذه الأدوات في تحديد نقاط الضعف بشكل أسرع بكثير من الاختبار اليدوي. مثل Burpsuite او XSS Hunter.

 

سأستخدم DVWA Application لبعض الامثلة العملية: 

 

1- Reflected XSS

في صفحة  http://localhost:81/DVWA/vulnerabilities/xss_r/

مصابه بثغره XSS في المعامل name عند حقن javascript code سيقوم بعكس الرد 

2- Stored XSS

علي عكس النوع السابق يتم في هذا النوع تخزين الـ payload علي الخادم و يتم تطبيقها في كل زياره للصفحه كما هو موضح هنا خانه لترك التعليق سنقوم بحقن الـ Payload فيها:

سيتم تخزين الـ Payload و عند اعاده تحميل الصفحه سيتم تفعيله:

3- DOM-Based XSS

عند الضغط علي Select لنري طبيعه التطبيق

سنجد ان المعامل Defult قد يكون مصاب بثغره الـ XSS لنجرب حقنة ب XSS payload

وبعد التعرف علي جميع انواع ثعرات الـ Cross-Site Script و كيفية اختبارها اليكم بعض الطرق لمنع و تقليل مخاطر الـ XSS

منع مخاطر ثغرات الـ XSS:

Input Validation: تتمثل الخطوة الأولى لمنع XSS في التحقق من صحة كل مدخلات المستخدم قبل معالجتها بواسطة الخادم.

Output encoding: يجب تشفير جميع البيانات التي يوفرها المستخدم قبل عرضها في الـ Browser. سيؤدي هذا إلى منع تنفيذ أي نصوص تم إدخالها.

Content Security Policy: عبارة عن مجموعة من القواعد التي تحدد المحتوى الذي يُسمح بتحميله بواسطة صفحة ويب. من خلال تنفيذ CSP ، يمكنك منع تنفيذ أي نصوص تم حقنها.

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

وهنا نكون قد وصلنا لنهايه مقالتنا الي مقاله جديده و ثغرة جديده...


XSS Vulnerability Cyber Security