حل تحدي Micro-CMS v1 من Hacker101
مرحبا بكم . اسمي احمد وانا مهندس معلوماتية . اردت ان اشارككم طريقتي في حل تحدي micro-cms النسخة الاولى من موقع hacker101 . تستطيع الوصول الى التحدي على الرابط الآتي https://ctf.hacker101.com/ctf التحدي من النوع السهل ولكنه سيكون نقطة انطلاقة للمتبدئين.
العلم الاول Flag0
بعد فتح التحدي تظهر الشاشة التالية:
بعد زيارة صفحة create a new page وانشاء صفحة جديدة . لاحظت ان محتوى الصفحة ينعكس في رد السيرفر . وهذا مؤشر جيد على ان الموقع مصاب بثغرة XSS . قمت باختبار بسيط لاتاكد من وجود الثغرة عن طريق تعديل الصفحة ووضع الكود الآتي:
- hello<script>alert(1);</script>
بعد العودة الى الصفحة الرئيسية لاحظت ظهور رسالة تحتوي على العلم الاول
العلم الثاني SQLi
اثناء تعديل الصفحة لاحظت أن الباراميتر id يتم تمريره في الرابط . جربت فحصه باضافة فارزة (') الى نهاية الباراميتر وحصلت على العلم الثاني
العلم الثالث الدخول الغير مصرح به Unauthorized Access
بعد إنشاء الصفحة الاولى لاحظت ان الموقع اعطاها id بالرقم 12
حاولت الوصول الى صفحات اخرى على الموقع عن طريق زيادة رقم الـ id من 2 الى 12 ولاحظت ان الصفحة رقم 7 تعطي رد 403 والصفحات الاخرى تعطي رد 404 .
تجولت في الموقع بحثاً عن اماكن قد يوجد فيها الـ id رقم 7 . ووجدت ان الـ id يستخدم ايضاً عند استدعاء الصفحة للتعديل editing
بعد التوجه الى الرابط تم الحصول على العلم الثالث
العلم الرابع Stored XSS
اخر مكان تبقى لنا ان نفحصه هو صفحة الـ editing . هناك ملاحظة في الاسفل تقول ان الـ markdown مدعومة وليس السكربتات
بما ان محتويات الصفحات تعرض مباشرة يمكننا ايجاد طريقة لتخطي الفلاتر لتنفيذ XSS . جربت اكثر من بايلود ووجدت ان البايلود الاتي يطلق انذار وعرض كلمة xss:
- <button onclick=alert(‘xss’)>click</button>
تم تنفيذ البايلود ولكن لم يظهر العلم . اضغط على view source لتجد العلم في الاسفل:
شكرا على القراءة. اراك في مقالات اخرى ان شاء الله