ما هي ثغرة Reflected XSS؟

 



Reflected XSS



في هذا القسم ، سنشرح reflected cross-site scripting، ووصف تأثير هجمات XSS المنعكسة ، ونوضح كيفية العثور على ثغرات XSS المنعكسة.

 

ما هي ثغرة Reflected XSS؟

 

تنشأ reflected cross-site scripting (أو XSS) عندما يتلقى التطبيق البيانات في طلب HTTP ويتضمن تلك البيانات في الاستجابة الفورية بطريقة غير آمنة.

 

لنفترض أن موقع الويب يحتوي على وظيفة بحث تتلقى مصطلح البحث المقدم من المستخدم في URL:

 

https://insecure-website.com/search?term=gift

 

يرد التطبيق مصطلح البحث المقدم في الرد على عنوان URL هذا:

 

<p>You searched for: gift</p>

 

بافتراض أن التطبيق لا يقوم بأي معالجة أخرى للبيانات ، يمكن للمهاجم إنشاء هجوم مثل هذا:

 

https://insecure-website.com/status?message=<script>/*+Bad+stuff+here...+*/</script>

 

ينتج عن عنوان URL هذا الاستجابة التالية:

 

 

<p>You searched for: <script>/* Bad stuff here... */</script></p>

 

إذا طلب مستخدم آخر للتطبيق عنوان URL الخاص بالمهاجم ، فسيتم تنفيذ البرنامج النصي الذي قدمه المهاجم في متصفح المستخدم الضحية ، في سياق جلسته مع التطبيق.

 

 تطبيق عملي : 

ثغرات XSS (Reflected, Stored and DOM based XSS)




تأثير هجمات Reflected XSS

 

 

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

 

1.    نفذ أي إجراء داخل التطبيق يمكن للمستخدم تنفيذه.

2.    اعرض أي معلومات يستطيع المستخدم عرضها.

3.    قم بتعديل أي معلومات يستطيع المستخدم تعديلها.

4.    بدء تفاعلات مع مستخدمي التطبيق الآخرين ، بما في ذلك الهجمات الضارة ، والتي يبدو أنها صادرة عن المستخدم الضحية الأولي.

 

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

 

تعني الحاجة إلى آلية تسليم خارجية للهجوم أن تأثير Reflected XSS

أقل حدة بشكل عام من stored XSS  ، حيث يمكن تنفيذ هجوم قائم بذاته داخل التطبيق الضعيف نفسه.

 

 

كيفية البحث عن ثغرات Reflected XSS واختبارها

 

 

يمكن العثور على الغالبية العظمى من ثغرات reflected cross-site scripting بسرعة وموثوقية باستخدام أداة فحص الثغرات الأمنية في Burp Suite.

 

يتضمن اختبار ثغرات Reflected XSS  يدويًا الخطوات التالية:

 

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

إرسال random alphanumeric values . لكل نقطة إدخال ، أرسل قيمة عشوائية فريدة وحدد ما إذا كانت القيمة تنعكس في الاستجابة. يجب تصميم القيمة لتتحمل معظم عمليات التحقق من صحة الإدخال ، لذا يجب أن تكون قصيرة إلى حد ما وتحتوي فقط على القيم. ولكن يجب أن تكون طويلة بما يكفي لجعل التطابقات العرضية ضمن الاستجابة أمرًا مستبعدًا. عادةً ما تكون القيمة لحوالي 8 أحرف مثالية. يمكنك استخدام حمولات عدد Burp Intruder  مع قيم سداسية عشرية تم إنشاؤها عشوائيًا لإنشاء قيم عشوائية مناسبة. ويمكنك استخدام خيار حمولات grep من Burp Intruder لتحديد الردود التي تحتوي على القيمة المرسلة تلقائيًا.

تحديد سياق الانعكاس. لكل موقع داخل الاستجابة حيث تنعكس القيمة العشوائية ، حدد سياقه. قد يكون هذا في نص بين علامات HTML ، داخل سمة علامة يمكن اقتباسها ، داخل سلسلة JavaScript ، إلخ.

 

 

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

 

 

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

 


تطبيق عملي : 

ثغرات XSS (Reflected, Stored and DOM based XSS)




 

اختبر الهجوم في متصفح. أخيرًا ، إذا نجحت في العثور على حمولة يبدو أنها تعمل داخل Burp Repeater ، فقم بنقل الهجوم إلى متصفح حقيقي (عن طريق لصق عنوان URL في شريط العنوان ، أو عن طريق تعديل الطلب في عرض اعتراض Burp Proxy ، ومعرفة ما إذا كان الملف المحقون تم تنفيذ JavaScript بالفعل. غالبًا ، من الأفضل تنفيذ بعض JavaScript مثل التنبيه (document.domain) والذي سيؤدي إلى ظهور نافذة منبثقة مرئية داخل المتصفح إذا نجح الهجوم.

About Toulay

    Blogger Comment
    Facebook Comment

0 Comments:

إرسال تعليق