Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
collisions — تصادمات التجزئة واستغلالاتها | Kitploit
أدوات/GitHubGitHub/decalage2/collisions
الاستغلالتحليل التجزئةالتشفيرتحليل الملفات الثنائيةالتعلم والتعليم
GitHubdecalage2/collisions

collisions

تصادمات التجزئة واستغلالاتها

عرض المستودع
9129منذ 4 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

TL;DR getting an MD5 collision of these two images is now(*) سهلًا وفوريًا.

صفحة MD5 على ويكيبيديا ⟷ <a href=http://gunshowcomic.com/648>

لا تعبث بالنار، لا تعتمد على MD5.

(*) كان من الممكن منذ سنوات عديدة إحداث تصادم بين أي ملفين، لكن الأمر يستغرق عدة ساعات في كل مرة، دون اختصار. توفر هذه الصفحة حيلًا خاصة بتنسيقات الملفات وبادئات تصادم محسوبة مسبقًا لجعل التصادم فوريًا. git clone. شغّل السكربت. انتهى.

تصادمات الهاش واستغلالاتها

بقلم Ange Albertini وMarc Stevens.

  • مقدمة
  • الحالة
  • الهجمات
    • بادئة متطابقة
      • FastColl (MD5)
      • UniColl (MD5)
      • Shattered (SHA1)
    • تصادمات البادئة المختارة
      • HashClash (MD5)
      • Shambles (SHA1)
    • ملخص الهجمات
  • الاستغلالات
    • الاستراتيجية القياسية
      • JPG
        • مسحات مخصصة
      • PNG
        • عدم التوافق
      • GIF
      • GZIP
      • الملف القابل للتنفيذ المحمول
      • MP4 وغيرها
        • JPEG2000
      • PDF
        • JPG داخل PDF
      • ZIP
        • الصيغ المعتمدة على ZIP
    • استراتيجيات غير شائعة
      • MultiColls: سلسلة تصادمات متعددة
      • الصلاحية
      • PolyColls: تصادمات لأنواع ملفات مختلفة
        • PE - JPG
        • PDF - PE
        • PDF - PNG
      • PileUps (تصادم متعدد)
        • PE - PNG - MP4 - PDF
    • حالات الاستخدام
      • اجعلها كلها تتصادم!
      • ملفات الإدانة
    • الإخفاقات
      • ELF
      • Mach-O
      • Java Class
      • TAR
    • ملخص الاستغلالات
    • ملفات الاختبار
  • المراجع
  • الاعتمادات
  • الخلاصة

مقدمة

الهدف هو استكشاف الهجمات الحالية بشكل موسّع - وإظهار على طول الطريق مدى ضعف MD5 (تصادمات فورية لأي JPG أو PNG أو PDF أو MP4 أو PE...) - وكذلك استكشاف تنسيقات الملفات الشائعة بالتفصيل لتحديد كيف يمكن استغلالها بهجمات حالية أو مستقبلية.

في الواقع، يمكن استخدام نفس حيلة تنسيق الملف على عدة هاشات (استُخدمت نفس حيل JPG لـ MD5، و malicious SHA-1 و SHA1)، طالما أن التصادمات تتبع نفس أنماط البايتات.

هذه الوثيقة ليست عن هجمات جديدة (أحدثها وُثّق في 2012)، بل عن أشكال جديدة لاستغلال الهجمات القائمة.

الحالة

الحالة الحالية - كما في ديسمبر 2018 - للهجمات المعروفة:

  • الحصول على ملف لهاش ملف آخر أو هاش معيّن: مستحيل

    • لا يزال حتى غير عملي مع MD2.
    • يعمل مع هاشات أبسط(*)
  • الحصول على ملفين مختلفين لهما نفس MD5: فوري

    • أمثلة: 1 ⟷ 2
  • جعل ملفين عشوائيين يحصلان على نفس MD5: بضع ساعات (72 hours.core)

    • أمثلة: 1 ⟷ 2
  • جعل ملفين عشوائيين من تنسيقات ملفات محددة (PNG, JPG, PE...) يحصلان على نفس MD5: فوري

    • اقرأ أدناه
  • الحصول على ملفين مختلفين لهما نفس SHA1: 6500 years.core

    • الحصول على ملفين PDF مختلفين لهما نفس SHA-1 لإظهار صورة مختلفة: فوري (البادئات محسوبة مسبقًا)

(*) مثال مع crypt - بفضل Sven!```

import crypt crypt.crypt("5dUD&66", "br") 'brokenOz4KxMc' crypt.crypt("O!>',%$", "br") 'brokenOz4KxMc'

# الهجمات

تعمل MD5 وSHA1 مع كتل من 64 بايت.

إذا كان لمحتويين A وB نفس التجزئة، فإن إلحاق نفس المحتوى C بكليهما سيحافظ على نفس التجزئة.``` text
hash(A) = hash(B) -> hash(A + C) = hash(B + C)

تعمل التصادمات عن طريق إدراج عدد من كتل التصادم المحسوبة عند حد كتلة يعتمد على ما سبق في الملف. تبدو كتل التصادم هذه عشوائية للغاية مع بعض الاختلافات الطفيفة (تتبع نمطًا محددًا لكل هجوم) وستُحدث اختلافات صغيرة بينما تؤدي في النهاية إلى جعل قيم التجزئة متطابقة بعد هذه الكتل.

تُستغل هذه الاختلافات لصنع ملفات صالحة بخصائص محددة.

تعمل تنسيقات الملفات أيضًا من الأعلى إلى الأسفل، ومعظمها يعمل عبر أجزاء على مستوى البايت.

يمكن إدراج بعض أجزاء 'التعليق' لمحاذاة أجزاء الملف مع حدود الكتل، ولمحاذاة هياكل محددة مع اختلافات كتل التصادم، ولإخفاء ما تبقى من عشوائية كتل التصادم عن محللات الملف، ولإخفاء محتوى صالح آخر عن المحلل (بحيث يرى محتوى آخر).

غالبًا ما لا تكون أجزاء 'التعليق' هذه تعليقات حقيقية رسميًا: تُستخدم فقط كحاويات بيانات يتجاهلها المحلل (على سبيل المثال، أجزاء PNG ذات معرّف يبدأ بحرف صغير هي ثانوية، وليست حرجة).

في معظم الأحيان، يُستخدم اختلاف في كتل التصادم لتعديل طول جزء تعليق، والذي يُعلن عادةً قبل بيانات هذا الجزء مباشرة: في الفجوة بين النسخة الأقصر والأطول من هذا الجزء، يُعلن جزء تعليق آخر لتجاوز محتوى ملف A. بعد محتوى الملف هذا A، ألحق فقط محتوى ملف آخر B.

نظرًا لأن تنسيقات الملفات عادةً ما تعرّف مُنهيًا يجعل المحللات تتوقف عنده، فإن A سينهي التحليل، مما يجعل المحتوى الملحق B مهملاً.

لذا عادةً ما يلزم تعليقان على الأقل - وغالبًا ثلاثة:

  1. المحاذاة
  2. إخفاء كتل التصادم
  3. إخفاء محتوى ملف واحد (لتصادمات قابلة لإعادة الاستخدام)

خصائص تنسيقات الملفات الشائعة هذه تجعل ذلك ممكنًا - لا تُرى عادةً على أنها نقاط ضعف، لكن يمكن اكتشافها أو تطبيعها:

  • أجزاء وهمية - تُستخدم كتعليقات
  • أكثر من تعليق واحد
  • تعليقات ضخمة (الأطوال: 64b لـ MP4، 32b لـ PNG -> تصادمات تافهة. 16b لـ JPG، 8b لـ GIF -> لا يوجد تصادم عام لـ GIF، محدود لـ JPG)
  • تخزين أي بيانات في تعليق (يمكن فرض ASCII أو UTF8)
  • تخزين أي شيء بعد المُنهي (يُستخدم عادةً لأغراض خبيثة فقط) - يمكن تجنبه باستخدام تعليقين ينتهيان عند نفس الإزاحات.
  • لا يوجد فحص تكامل. عادةً ما يتم تجاهل CRC32 في PNG. ومع ذلك يمكن أن تكون جميعها صحيحة لأن كتل التصادم تُعلن أجزاءً بأطوال مختلفة - لذلك حتى إذا كانت بيانات الجزء تبدأ بشكل مختلف، فإن أطوال الأجزاء مختلفة
  • بنية مسطحة: ASN.1 يعرّف بنية أب مع طول جميع البنى الفرعية المضمنة، مما يمنع هذه الإنشاءات: ستحتاج إلى إساءة استخدام طول، وكذلك طول الأصل.
  • وضع تعليق قبل الترويسة - وهذا يجعل التصادمات العامة القابلة لإعادة الاستخدام ممكنة.

البادئة المتطابقة

  1. حدد بادئة عشوائية - لا يهم محتواها أو طولها.
  2. تُحشى البادئة حتى كتلة 64 بايت التالية.
  3. تُحسب كتلة (كتل) التصادم بناءً على البادئة وتُلحق. كلا الجانبين عشوائيان للغاية. الاختلافات محددة مسبقًا بواسطة الهجوم.
  4. بعد هذه الكتلة (الكتل)، تكون قيمة التجزئة هي نفسها رغم اختلافات الملف.
  5. يمكن إضافة أي لاحقة متطابقة عشوائية.
البادئة=البادئة
التصادم A≠التصادم B
اللاحقة=اللاحقة

كلا الملفين متطابقان تقريبًا (يحتوي محتواهما على بضع بتات فقط من الاختلافات)

الاستغلال:

اجمع محتويين، ثم إما:

  • استغلال البيانات: تشغيل كود يفحص الاختلافات ويعرض أحدهما أو الآخر (عادةً ما يكون تافهًا لأن الاختلافات معروفة مسبقًا).
  • استغلال البنية: استغلال بنية الملف (عادةً، طول تعليق) لإخفاء محتوى أو إظهار الآخر (يعتمد على تنسيق الملف ومحللاته).

ملفان بهذه البنية:

تنزيل الأداة