لاب رقم (13) | Reflected XSS into HTML context with most tags and attributes blocked

تعلم كيفية تخطي جدران الحماية (WAF) التي تحظر معظم وسوم HTML. شرح عملي لاستخدام Burp Suite وحدث onresize لتنفيذ ثغرة Reflected XSS في لابات PortSwigge

ثغرة XSS المستحيلة: كيف تتخطى فلاتر الـ WAF عندما يتم حظر كل شيء؟ 🛡️🔥

Reflected XSS into HTML context with most tags and attributes blocked

مرحباً بصيادي الثغرات المبدعين! اليوم سنواجه تحدياً من نوع خاص. تخيل أنك تحاول حقن كود XSS، لكن الموقع يرد عليك بـ "403 Forbidden" بمجرد كتابة <script> أو <img> أو حتى استخدام onclick. هل هذه هي النهاية؟

لاب اليوم من PortSwigger هو:
Reflected XSS into HTML context with most tags and attributes blocked

اليوم سنتعلم كيف نستخدم Burp Suite Intruder للبحث عن "الثغرة المنسية" وكيف نستغل وسوم HTML5 الحديثة لتنفيذ الـ XSS رغماً عن أنف الفلتر! 🚀


🔍 مرحلة الاستكشاف (The Fuzzing Phase)

عندما تواجه جدار حماية (WAF) يحظر الوسوم، لا تجرب يدوياً. استخدم القوة الغاشمة المنظمة:

  1. قم بالتقاط طلب البحث في Burp Suite وأرسله إلى الـ Intruder.
  2. ضع علامة القنص (Payload Position) مكان الكلمة المبحوث عنها: <§§>.
  3. استخدم قائمة "Cheat Sheet" الخاصة بـ PortSwigger لجميع وسوم HTML كـ Payloads.
  4. ستلاحظ أن جميع الوسوم تعطي 403 ما عدا وسمين فقط: <body> و <custom-tags>.

كرر نفس العملية مع الـ Attributes (الخصائص) داخل وسم الـ <body>، وستكتشف أن الخاصية الوحيدة المسموحة هي onresize.


🛠️ خطة الهجوم (The Custom Exploit)

بما أن المسموح لنا هو <body onresize="...">، فنحن بحاجة لطريقة تجعل المتصفح يقوم بتغيير حجم الصفحة (Resize) تلقائياً لتنفيذ الكود دون تدخل المستخدم.

الـ Payload السحري:
سنرسل للضحية رابطاً يحتوي على iframe يفتح موقع اللاب، وبمجرد تحميله، نقوم بتغيير حجم الـ iframe لإطلاق الشرارة!

<iframe src="https://YOUR-LAB-ID.web-security-academy.net/?search=%3Cbody+onresize%3Dprint%28%29%3E" onload="this.style.width='100px'"></iframe>

📝 خطوات الحل العملية

  1. اذهب إلى الـ Exploit Server الخاص باللاب.
  2. في قسم الـ Body، ضع كود الـ iframe المذكور أعلاه.
  3. استبدل YOUR-LAB-ID برابط اللاب الحقيقي الخاص بك.
  4. لاحظ أننا استخدمنا print() بدلاً من alert(1) لأن بعض الفلاتر تحظر كلمة alert أيضاً!
  5. اضغط Store ثم Deliver exploit to victim.

ماذا حدث؟ الـ iframe فتح الموقع المصاب بـ Payload الـ onresize، ثم قام السكريبت الخارجي بتصغير حجم الإطار، مما أجبر المتصفح على تنفيذ أمر الطباعة (Print) فوراً. مبروك التخطي! 🥳


💡 نصيحة صياد (The WAF Bypass Rule)

عندما تجد حماية قوية، تذكر هذه القواعد:

  • Fuzz Everything: لا تخمن، استخدم Intruder لتعرف بالضبط ما هو مسموح وما هو ممنوع.
  • HTML5 Events: ابحث عن أحداث غير مشهورة مثل onscroll، onfocus، onwheel، أو ontoggle.
  • وسوم نادرة: أحياناً ينسى المطورون حظر وسوم مثل <details> أو <svg> أو <video>.

🚀 الخاتمة

لاب اليوم أثبت لنا أن الـ XSS هو علم وفن في آن واحد. الفلتر مهما كان قوياً، فغالباً ما يترك ثغرة صغيرة خلفه، ومهمتك كباحث أمني هي العثور على تلك الفجوة واستغلالها.

إرسال تعليق