المقال المثبتامن وحماية تطبيقات الويبتحديات iSecur1tyمواضيع عامةمواضيع ومقالات

مقال : حل التحدي الثالث وأسماء الفائزين

تم أرشفة هذا المحتوى


قبل ما يُقارب أسبوعين من الأن تم نشر تحدي ثغرة XSS من قبلنا ومع الشروط هنا  ، اليوم سنشرح كيفية الحل وفهم التحدي وأسماء الفائزين .

الشرح 

أولاً يجب عليك ان تعرف اين يتم الحقن وهو موضح في التحدي الحقن يتم عن طريق متغير xss GET

 

http://isecur1ty-challenges.com/xss/beginner/xss3.php?xss=inject here

3-2-2016 5-47-12 PM

الان نظهر النص المصدري لنرى ما يتم فلترته

 

 

http://isecur1ty-challenges.com/xss/beginner/xss3.php?xss=<>123″‘onmouseover=123

3-2-2016 6-12-52 PM

من الصورة وبعد عرض النص المصدري نستنتج ما ياتي :

  • أن < > مفلترة ب htmlentites
  • أن ” مفلترة ك htmlentites
  • ان حدث onmouseover ايضاً مفلتر الى (xss-event)
  • أن ‘ غير مفلترة والعناصر تبدأ ب ‘ يمكنك عمل end وفتح اتربيوت جديد كحدث js لكن الاحداث مفلترة !

 

ربط الاستنتاج 

 

من ملاحظة ان الحقن في input يوجد العديد من الامور التي يمكن حقنها هنا لكن كل احداث جافا سكربت معطلة الا حدث onerror !

حدث onerror يستمعل عند حصول خطأ في الوسم مثلا حين يكون رابط الاستدعاء معطلاً . لكن onerror لا تعمل حين يكون نوع الinput يساوي text لذلك يجب تغير النوع . وملاحظة مهمة جداً

 

حسب HTML syntax فاني المتصفح يقرأ الاتربيوت الاول ويطبقه على الinput ويتم تجاهل الاتربيوت الثاني (القيمة الثانية له) .

 

الان نرى ان اتربيوت type هو بعد الحقن لذلك يمكن ان يتم حقن متغير اخر بنفس الاسم وقيمة مختلفة (مفتاح الحل)

 

يمكن ان يتم تغير نوع الinput الى image سيصبح صورة وذلك يمكن حقن onerror في الinput طريقة 1 , ويمكن ان يتم تحويله الى button وعمل اتربيوت جديد وهو formaction ووضع جافا سكربت مباشرة بدون الحاجة الى  حدث جافا سكربت .

 

الحل الاول 

 

http://isecur1ty-challenges.com/xss/beginner/xss3.php?xss=x’ type=’image’ src=’x’ onerror=’alert(1)x

3-4-2016 11-57-45 AM

نعرض النص المصدري

3-4-2016 11-58-01 AM

لاحظ كيف تم تجاهل النوع الثاني وعرض المدخل على شكل صورة  .

الحل الثاني 

مثل ما ورد الان لكنه يتطلب بعض التدخل من المستخدم للضغط على الزر تحويل الى button او submit

سنحول الtype الى button ونضع اكشن للفورم على شكل javascript:alert(1)x

 

http://isecur1ty-challenges.com/xss/beginner/xss3.php?xss=xss’ type=’submit’ formaction=’javascript:alert(1)x

 

3-4-2016 12-04-13 PM

 

 

 

أسماء الفائزين 

 

للأسف لم نستلم الكثير من الحلول بالرغم من سهولة التحدي نتمنى الإستفادة  للجميع من هذه التحديات ونلتقي في تحديات قادمة.

عبدالله حسام

مبرمج ومختبر اختراق من العراق مهتم بأمن المعلومات والثغرات البرمجية للتواصل معي عبر تويتر https://twitter.com/Abdulahhusam

مقالات ذات صلة

‫10 تعليقات

    1. أهلاً مصطفى , كلامك صحيح لكن لم يتم اضافة الاسم لانك لم تتلزم بالشروط بارسال الاسم والرابط . نرجوا ان يتم ارسالها في المرة القادمة حتى يتم تدوين الاسم بمجرد التاكد من الحل .

      تحياتي

  1. عموما متشكر علي اضافة اسمي في الاخر، المرات الجاية هبعت بالشكل الصحيح من الاول ان شاء الله

    شكرا جزيلا

  2. السلام عليكم انتو بعد ما تنشرو الحل خلص بتقفلو الصفحة عن الحقن ولا ايش افيدونا الله يرحم والديكو خلونا نتعلم

  3. مش عارف ليه انا جربت حاجات كتير جدا ومش اشتغلت معايا الثغرة حتى الحلول اللى نزلتوها مش اشتغلت معايا ولا ظهر اى شىء ايه المشكلة ؟ على فكرة الموضوع دا حصل معايا فى التلات تحديات
    حتى الحلول اللى بتنزلوها مش بتشتغل عندى

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى