
إثبات مفهوم لـ CVE-2022-48565 - هجوم إلغاء تسلسل XML في plistlib ببايثون
هذا هو إثبات مفهوم (PoC) يوضح الثغرة CVE-2022-48565، والتي تستند إلى إلغاء التسلسل غير الآمن لملفات Plist في Python. من خلال معالجة ملفات قوائم الخصائص (Plist) المصممة بعناية، يمكن للمهاجم تنفيذ تعليمات برمجية عشوائية على النظام المستهدف، مما قد يؤدي إلى تنفيذ كود عن بُعد (RCE).
في هذا المستودع، ستجد أربعة نصوص برمجية (سكربتات) خاصة بـ PoC، يعرض كل منها طرقًا مختلفة لاستغلال هذه الثغرة. توضح هذه الأمثلة كيف يمكن تضمين تعليمات برمجية خبيثة في ملفات Plist وتنفيذها على نظام.
إليك مقطع فيديو يوضح إثبات المفهوم:
إن نصوص PoC هذه مخصصة للأغراض التعليمية وأبحاث الأمن فقط. استخدم هذه السكربتات في بيئة خاضعة للتحكم ولا تستخدمها أبدًا على أنظمة الإنتاج. قد يؤدي إساءة استخدام هذه الثغرة إلى عواقب قانونية وأخلاقية وخيمة.
Python <=3.9.1
Python 2.x
macOS: بعض الأمثلة (مثل فتح تطبيق الحاسبة أو Safari) تعمل فقط على macOS، لأنها تستخدم أوامر خاصة بـ macOS
استنسخ هذا المستودع:
git clone https://github.com/Einstein2150/CVE-2022-48565-POC
انتقل إلى الدليل:
cd CVE-2022-48565-POC
يوجد أربعة نصوص برمجية (سكربتات) خاصة بـ PoC، يعرض كل منها طرقًا مختلفة لاستغلال هذه الثغرة.
يعرض هذا السكربت مثالًا بسيطًا يتم فيه استخدام إلغاء التسلسل غير الآمن لتنفيذ أمر shell يقوم بطباعة رسالة إلى الطرفية.
الاستخدام:
bash
python2 cve-2022-48565_poc_echo.py
في هذا المثال، يتم توضيح كيف يمكن للمهاجم فتح تطبيق الحاسبة في macOS عن طريق إلغاء تسلسل ملف Plist خبيث.
الاستخدام:
bash
python2 cve-2022-48565_poc_calc.py
يعرض هذا السكربت كيف يمكن للمهاجم تنزيل ملف من مصدر خارجي وفتحه تلقائيًا في Safari. يتم استخدام أمر wget لتنزيل index.html من الموقع foto-video-it.de، ثم يتم فتحه في Safari.v
الاستخدام:
bash
python2 cve-2022-48565_poc_wget.py
يحاكي هذا السكربت سيناريو هجوم عملي حيث يتم تخزين ملف Plist الخبيث خارجيًا وتحميله أثناء وقت التشغيل. يوضح هذا كيف يمكن للمهاجم تحميل ملف Plist من مصدر خارجي واستخدامه لتنفيذ تعليمات برمجية خبيثة.
يحتوي ملف malicious.plist على الحمولة (payload) ويجب وضعه في نفس الدليل الذي يوجد به السكربت.
الاستخدام:
bash
python2 cve-2022-48565_poc_external_plist.py
هذا المشروع مرخّص بموجب رخصة MIT. راجع ملف LICENSE لمزيد من التفاصيل.