قبل ما يُقارب أسبوعين من الأن تم نشر تحدي ثغرة 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

 

 

 

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

 

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