
CTF قائم على المتصفح — ارتباك رمز OAuth وفشل عزل الجلسة (نمط CVE-2025-49596). DevTools فقط.
لوحة التحكم تقرأ الجلسة نشطة.
كل استدعاء أداة ينجح.
رمز OAuth الخاص بالمسؤول موجود في كل استجابة.
حدود الثقة هو مختبر CTF قائم على المتصفح مبني حول فشل حقيقي في عزل الجلسة في خادم MCP يعمل محليًا. الثغرة الأمنية ليست محاكاة — بل يتم تنفيذها في العملية الجارية. ثلاثة أعلام. أدوات المطور فقط.
كائن سياق مشترك واحد قابل للتغيير. يتم تعيين بيانات اعتماد المسؤول عند بدء التشغيل. طلبات المستخدم التي تستبدله جزئيًا — ولكن لا تمسح ما يهم أبدًا.
flowchart LR
subgraph startup["🚀 بدء تشغيل الخادم"]
A[وكيل المسؤول]
A -->|تحميل بيانات الاعتماد| CTX
end
subgraph ctx["⚠️ سياق مشترك"]
CTX["الهوية ✓ تم تعيينها\nالأذونات ✓ تم تعيينها\nالرمز ✓ تم تعيينه\nالجلسة ✓ تم تعيينها"]
end
subgraph request["👤 استدعاء أداة المستخدم"]
U[وكيل المستخدم]
U -->|الهوية ✓ تم تحديثها\nالأذونات ✓ تم تحديثها\nالرمز ✗ لم يتم إعادة تعيينه أبدًا\nالجلسة ✗ لم يتم إعادة تعيينها أبدًا| CTX
CTX -->|الاستجابة تتضمن\nبقايا المسؤول| U
end
style ctx fill:#1a0a0a,stroke:#ff3333,color:#ff3333
style startup fill:#0a0e27,stroke:#4488ff,color:#00ffff
style request fill:#0a0e27,stroke:#ffaa00,color:#ffaa00
الخادم لا يخطئ أبدًا. واجهة المستخدم تبلغ أن كل شيء على ما يرام. بيانات الاعتماد موجودة في مكان ما في حركة المرور — اعثر عليها.
أنت محلل SOC في شركة Elefunk تستجيب لتنبيه MDR:
"تم ملاحظة رمز جلسة غير متوقع في استجابة استدعاء أداة الوكيل. المصدر: سياق المستخدم. نمط الرمز يطابق بادئة بيانات اعتماد المسؤول. درجة الثقة: عالية."
لوحة تحكم الوكيل الداخلية على http://localhost:3000 تبدو طبيعية. مهمتك هي تأكيد فشل العزل والعثور على الأعلام الثلاثة التي أنتجها — باستخدام أدوات المطور في المتصفح فقط.
جميع الأعلام تتبع الصيغة CTF{...}. أرسل باستخدام المدقق في أسفل لوحة التحكم.
Node.js 18+. لا حاجة لـ Docker. لا متغيرات بيئة. لا إعدادات.
git clone https://github.com/acseguin21/trust-boundary-ctf
cd trust-boundary-ctf
npm install
npm start
افتح http://localhost:3000 — ستكون لوحة تحكم وكيل Elefunk في انتظارك.
SPOILERS.md هو المستند المصاحب للمدرسين ومهندسي الكشف وجلسات الفريق البنفسجي. يحتوي على:
أغلقه إذا كنت هنا للعب. افتحه إذا كنت هنا للتدريس.
Swadee Security · عملية: سلسلة العاج
| العلم | الصعوبة | موقع أدوات المطور | كيف |
|---|
| 🟢 | FLAG 1 | سهل | الشبكة → رؤوس الاستجابة | كل استدعاء أداة يُسرب رمز المسؤول في رأس الاستجابة |
| 🟡 | FLAG 2 | متوسط | الشبكة → WS → الإطارات | يصل إطاران من WebSocket عند تحميل الصفحة — معرف جلسة واحد خاطئ |
| 🔴 | FLAG 3 | صعب | التطبيق → Session Storage | تسلسل محدد + توقيت يؤدي إلى كتابة سجل تصحيح |