مقال : حل التحدي الثالث وأسماء الفائزين
قبل ما يُقارب أسبوعين من الأن تم نشر تحدي ثغرة 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
للأسف لم نستلم الكثير من الحلول بالرغم من سهولة التحدي نتمنى الإستفادة للجميع من هذه التحديات ونلتقي في تحديات قادمة.
عفوا، انا بعت حل التحدي يوم ما نزل و مرديتوش عليا و اسمي مش فوق !!
أهلاً مصطفى , كلامك صحيح لكن لم يتم اضافة الاسم لانك لم تتلزم بالشروط بارسال الاسم والرابط . نرجوا ان يتم ارسالها في المرة القادمة حتى يتم تدوين الاسم بمجرد التاكد من الحل .
تحياتي
بس انا كل مرة كنت ببعت بنفس الطريقة و بعد ما انتم تردوا كنت ببعت اسمي و الرابط -_-
عموما متشكر علي اضافة اسمي في الاخر، المرات الجاية هبعت بالشكل الصحيح من الاول ان شاء الله
شكرا جزيلا
السلام عليكم انتو بعد ما تنشرو الحل خلص بتقفلو الصفحة عن الحقن ولا ايش افيدونا الله يرحم والديكو خلونا نتعلم
أخ عبدالله الصفحة تضل مصابة بالثغرة لانها لااغراض التدريب
مش عارف ليه انا جربت حاجات كتير جدا ومش اشتغلت معايا الثغرة حتى الحلول اللى نزلتوها مش اشتغلت معايا ولا ظهر اى شىء ايه المشكلة ؟ على فكرة الموضوع دا حصل معايا فى التلات تحديات
حتى الحلول اللى بتنزلوها مش بتشتغل عندى
@mahmoud
http://isecur1ty-challenges.com/xss/beginner/xss3.php?xss=123%27%20type=%27image%27%20src=%27x%27%20onerror=%27alert%281%29
افتحه على الفايرفوكس وسيعمل معك
مذهل و رائع
brother abdullah i wait your course about web application pentesting 🙂