Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
mongobleed — CVE-2025-14847 شرح ومختبر | Kitploit
أدوات/GitHubGitHub/adolfbharath/mongobleed
تحليل الثغرات الأمنيةأمن الشبكاتالتشفيرالتعلم والتعليمأمن قواعد البياناتمختبرات وتدريب عملي
GitHubadolfbharath/mongobleed

mongobleed

CVE-2025-14847 شرح ومختبر

عرض المستودع
14منذ 8 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

مختبر تسرب ضغط MongoDB (آمن، تعليمي)

المرجع CVE : CVE-2025-14847

هذا المستودع هو مختبر تعليمي يوضح المفهوم الكامن وراء فئة من المشكلات التي غالبًا ما تُوصف بأنها "تأطير الضغط / كشف حجم البيانات الوصفية للذاكرة" في بروتوكولات نقل قواعد البيانات.

تم كتابته لدعم الفهم الدفاعي: كيف يتم التفاوض على ضغط شبكة MongoDB وتأطيرها، ولماذا حقول الحجم مهمة، وكيف تمنع المحللات القوية تعرّض الذاكرة غير المقصود.

ملاحظة حول مرجع CVE: تم تأطير هذا المختبر حول الفكرة المشار إليها باسم CVE-2025-14847. هذا المستودع لا يتحقق من صحة أو يعيد إنتاج أو يستغل خطأ بائع معين أو يدّعي تأثر أي إصدار معين من MongoDB. يركز على نمط الفشل العام (عدم تطابق حجم البيانات الوصفية حول الحمولات المضغوطة) والتخفيفات.

حالة الإصدار (معرض للخطر مقابل مصحح)

هذا المستودع لا يتضمن (ولا ينبغي استخدامه كدليل) للإصدارات المعرضة للخطر أو المصححة من MongoDB لأي CVE معين.

لتوثيق الإصدارات "المعرضة للخطر" مقابل "المصححة" بشكل صحيح لتقرير، استخدم إرشادات البائع الرسمية / ملاحظات الإصدار الخاصة بـ CVE واستشهد بها.

خطوات عملية للتحقق مما تقوم بتشغيله:

  • إصدار حاوية Docker:
    • docker compose exec mongodb mongod --version
    • أو docker compose exec mongodb mongosh --quiet --eval "db.version()"
  • إصدار التثبيت على المضيف:
    • mongod --version
تنزيل الأداة
  • mongosh --quiet --eval "db.version()"
  • إذا شاركت رابط الإرشادات الذي تستخدمه، يمكنني تنسيق جدول "المتأثر / المُصحح" نظيف في README دون تخمين.

    ما هي الثغرة (من الناحية المفاهيمية)

    يوضح هذا المختبر نمط فشل تأطير الضغط / عدم تطابق حجم البيانات الوصفية:

    • رسائل MongoDB مسبوقة بالطول. مع ضغط الشبكة، يضيف غلاف OP_COMPRESSED المزيد من حقول الحجم (طول الرسالة الخارجية، الحجم المعلن غير المضغوط، والطول الخاص بالرسالة الداخلية).
    • إذا كان التطبيق يثق في أي من حقول الحجم هذه دون التحقق الصارم، فقد يتعامل مع المخازن المؤقتة بشكل خاطئ أثناء فك الضغط أو التحليل.
    • في التطبيقات المعيبة، يمكن أن يؤدي ذلك إلى قراءات خارج الحدود أو إرجاع بايتات مخزن مؤقت غير مهيأة، وهي إحدى طرق حدوث "كشف الذاكرة".

    راجع protocol_overview.md للحصول على شرح تفصيلي للتأطير.

    إخلاء مسؤولية أخلاقي

    • هذا المشروع غير قابل للاستغلال حسب التصميم.
    • لا يتضمن منطقًا مسلحًا أو كود استغلال أو تقنيات تهدف إلى اختراق الأنظمة.
    • يجب تشغيله فقط ضد حاوية Docker المحلية المقدمة هنا.
    • لا توجه هذا الكود نحو أنظمة لا تملكها أو تفتقر إلى إذن صريح لاختبارها.

    أهداف التعلم

    بحلول نهاية المختبر، يجب أن تكون قادرًا على:

    • شرح كيفية عمل تأطير بروتوكول نقل MongoDB على مستوى عالٍ.
    • وصف كيف يتم التفاوض على ضغط شبكة zlib وتطبيقه.
    • فهم كيف يمكن أن تؤدي بيانات الطول / الحجم المشوهة من الناحية المفاهيمية إلى تعرّض الذاكرة في تطبيق معيب.
    • تحديد التخفيفات العملية: التصحيح، تعزيز التكوين، والكشف الشبكي.

    ماذا يفعل هذا المستودع (وما لا يفعله)

    يفعل:

    • تشغيل MongoDB في Docker مع تمكين ضغط zlib.
    • استخدام عميل Python أصلي صغير من أجل:
      • إرسال hello غير مضغوط يتضمن compression: ["zlib"]
      • إرسال رسالة OP_COMPRESSED مؤطرة بشكل صحيح باستخدام zlib
      • تسجيل الأحجام غير المضغوطة مقابل المضغوطة وملخص لاستجابات الخادم
    • تضمين عرض توضيحي "محلل لعبة" محلي يوضح كيف يرفض المحلل الدفاعي بيانات الحجم غير المتطابقة.

    لا يفعل:

    • صنع حزم ضارة للاستغلال في العالم الحقيقي.
    • محاولة تجاوز المصادقة.
    • محاولة قراءة ذاكرة عشوائية.

    محتويات المستودع

    • docker-compose.yml – تشغيل حاوية MongoDB مع تمكين ضغط zlib وتعريض للمضيف المحلي فقط.
    • protocol_overview.md – بروتوكول النقل + BSON + سير عمل الضغط + شرح الثغرة المفاهيمي.
    • mitigation.md – إرشادات الدفاع: التصحيح، التكوين، وأفكار الكشف.
    • lab_probe.py – مسبار أصلي يتفاوض على الضغط ويسجل أحجام الرسائل بأمان.

    كيفية تشغيل المختبر بأمان

    1) المتطلبات الأساسية

    • Docker Desktop (أو محرك Docker متوافق)
    • Python 3.10+ (موصى به)

    2) تشغيل MongoDB

    من دليل هذا المستودع:

    root@kitploit:~
    docker compose up -d
    

    تأكد من أنه يعمل:

    root@kitploit:~
    docker compose ps
    

    3) تشغيل المسبار

    root@kitploit:~
    python .\lab_probe.py
    

    المخرجات المتوقعة:

    • طباعة أدوات الضغط المتفاوض عليها من أول hello
    • طباعة أحجام الطلب / الاستجابة
    • إرسال hello مضغوط وتسجيل أحجام الرسالة المضغوطة والمفكوكة

    4) تشغيل العرض التوضيحي الصغير (بدون شبكة)

    root@kitploit:~
    python .\lab_probe.py --toy-demo
    

    يقوم هذا بتشغيل فحوصات تحليل محلية فقط لتوضيح سبب أهمية التحقق من الحجم.

    5) الإيقاف

    root@kitploit:~
    docker compose down
    

    ملاحظات السلامة

    • الحاوية مرتبطة بـ 127.0.0.1:27017 على المضيف.
    • لا يوجد سلوك استغلالي.
    • يفرض المسبار حدودًا متحفظة (مثل الحد الأقصى لحجم الرسالة) ويتحقق من جميع حقول الطول.