قبل ما يُقارب أسبوعين من الأن تم نشر تحدي ثغرة XSS من قبلنا ومع الشروط هنا ، اليوم سنشرح كيفية الحل وفهم التحدي وأسماء الفائزين .
الشرح
أولاً يجب عليك ان تعرف اين يتم الحقن وهو موضح في التحدي الحقن يتم عن طريق متغير xss GET
http://isecur1ty-challenges.com/xss/beginner/xss3.php?xss=inject here
الان نظهر النص المصدري لنرى ما يتم فلترته
http://isecur1ty-challenges.com/xss/beginner/xss3.php?xss=<>123″‘onmouseover=123
من الصورة وبعد عرض النص المصدري نستنتج ما ياتي :
- أن < > مفلترة ب 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
نعرض النص المصدري
لاحظ كيف تم تجاهل النوع الثاني وعرض المدخل على شكل صورة .
الحل الثاني
مثل ما ورد الان لكنه يتطلب بعض التدخل من المستخدم للضغط على الزر تحويل الى button او submit
سنحول الtype الى button ونضع اكشن للفورم على شكل javascript:alert(1)x
أسماء الفائزين
- Alhasan Al-Nasiry
- Mustafa Ahmed Abduljabber
- ahmed mustafa
- يحي عبد الواحد بولحية
- Yessine Taktak
- PRIVATE !
- Abdelazim Mohammed
- Belghit Ismail
- Raad Haddad
- pr3d4t0r
- Strukt93
للأسف لم نستلم الكثير من الحلول بالرغم من سهولة التحدي نتمنى الإستفادة للجميع من هذه التحديات ونلتقي في تحديات قادمة.