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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-12877-Exploit — عرض توضيحي تعليمي لاستغلال CVE-2024-12877 لثغرة حقن كائنات PHP في إضافة GiveWP ووردبريس. يتضمن تحليل السبب الجذري، وتقنيات تجاوز regex، وممارسات الاستغلال الآمنة. | Kitploit
أدوات/GitHubGitHub/soltanali0/cve-2024-12877-exploit
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبCTFاختبار الاختراقالتعلم والتعليمتطوير الحمولات

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubsoltanali0/cve-2024-12877-exploit

CVE-2024-12877-Exploit

عرض توضيحي تعليمي لاستغلال CVE-2024-12877 لثغرة حقن كائنات PHP في إضافة GiveWP ووردبريس. يتضمن تحليل السبب الجذري، وتقنيات تجاوز regex، وممارسات الاستغلال الآمنة.

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

GO-TO CVE – استغلال CVE-2024-12877

الأسبوع 66 | المؤلف: علي سلطاني (soltanali0)

مرحبًا بكم في الأسبوع 66 من سلسلة GO-TO CVE، حيث نقوم بتشريح الثغرات الأمنية، وتحليل الأسباب الجذرية، وعرض تقنيات الاستغلال العملية في سياق تعليمي آمن.


🚨 نظرة عامة

CVE-2024-12877 هي ثغرة حقن كائنات PHP (PHP Object Injection) في GiveWP، أحد أكثر إضافات التبرع لووردبريس استخدامًا. الاستخدام غير الآمن لدالة unserialize() على مدخلات يتحكم فيها المستخدم يسمح للمهاجمين باستدعاء دوال PHP السحرية (مثل __wakeup())، مما قد يؤدي إلى:

  • تنفيذ التعليمات البرمجية عن بُعد (RCE) ⚡
  • سرقة البيانات الحساسة 🕵️‍♂️
  • تصعيد الامتيازات 🔑
  • اختراق كامل للخادم ☠️

CVSS: 9.8 حرج | المتجه: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H


🧩 حول GiveWP

image

يدعم GiveWP آلاف المواقع الخيرية والمنظمات غير الحكومية ومنصات جمع التبرعات. ولأنه يتعامل مع بيانات مالية وبيانات مانحين حساسة، فإن وجود ثغرة هنا له تأثير بالغ. يمكن للمهاجم الذي يستغل حقن الكائنات أن يتصاعد من إضافة واحدة إلى اختراق تثبيت ووردبريس بالكامل والخادم الأساسي.


⚙️ تفاصيل الثغرة

  • السبب الجذري: استخدام unserialize() على مدخلات غير موثوقة.

  • دوال PHP السحرية: تستدعيها PHP تلقائيًا خلال دورة حياة الكائن:

  • تنبع الثغرة من الاستخدام غير الآمن لدالة PHP unserialize() على مدخلات يتحكم فيها المستخدم. وبينما صُممت unserialize() لإعادة بناء هياكل بيانات PHP، فإن لها تأثيرًا جانبيًا خطيرًا: عندما يتم إعادة بناء الكائنات، تستدعي PHP تلقائيًا الدوال السحرية.

الدوال السحرية في PHP

  • __wakeup() – تُستدعى عند إلغاء تسلسل كائن

  • __destruct()، __toString()، __get/__set()، __call/__callStatic() – يمكن استغلالها للتنفيذ الخبيث

  • تحقق Regex: نفذت GiveWP فحوصات regex لاكتشاف المدخلات المسلسلة. وعلى الرغم من أن regex الجديد يلتقط المزيد من أنواع البيانات، لا يمكن لـ regex منع حقن الكائنات بشكل موثوق.

image

الرؤية الأساسية:

باستخدام كائن مسلسل ومُصمم بعناية، يضبط المهاجم خصائص الكائن، وتقوم PHP نفسها بتنفيذ منطق المهاجم من خلال استدعاء الدوال السحرية

تحقق Regex

نفذت GiveWP تحققًا قائمًا على regex لمعرفة ما إذا كان الإدخال مسلسلًا. Regex القديم (غير مكتمل)

• كان يتعرف فقط على المصفوفات والكائنات.

• الأنواع المسلسلة الأخرى (سلسلة، عدد صحيح، منطقي، عائم، null) كانت تتجاوز الاكتشاف.

carbon

Regex الجديد (محسّن، لكنه معيب)

• يتعرف على جميع أنواع PHP المسلسلة.

• يحظر بعض الحمولات التافهة.

• لكن المشكلة الأساسية تبقى: إذا تم استخدام unserialize() على إدخال المستخدم، فإن regex لن ينقذك.

carbon (1)

كُتب هذا المقتطف لمقارنة تطبيقين مختلفين لـ regex:

• is_serialized_old() → الإصدار القديم، الذي يكتشف المصفوفات والكائنات فقط.

• is_serialized_new() → الإصدار المحسّن، الذي يتعرف على جميع أنواع بيانات PHP المسلسلة (المصفوفات، الكائنات، السلاسل، الأعداد الصحيحة، القيم المنطقية، الأعداد العائمة، و null). ننشئ مجموعة من قيم الاختبار (مصفوفة، كائن، سلسلة، عدد صحيح، منطقي، عائم، null)، ثم نسلسلها، ونفحص كل واحدة مقابل دالتي regex. بعبارات بسيطة:

image

وبعد تشغيل هذا الكود على حاوية Docker الخاصة بك، سترى هذه النتيجة في المتصفح

image

💥 عرض الاستغلال

الخطوة 1

carbon (2)

الخطوة 2: إنشاء كلاس ضعيف

carbon (4)

يحتوي هذا الكلاس على دالة __wakeup() سيتم تنفيذها تلقائيًا عند إلغاء التسلسل.

الخطوة 3: صياغة الحمولة

image

الخطوة 4: الإخراج بعد حفظ الملف، يمكنك رؤية هذا الاستغلال في هذا الملف

image

الاستغلال :

image

• Regex القديم: FALSE ← فشل في اكتشاف الحمولة.

• Regex الجديد: TRUE ← اكتشفها كمدخل مسلسل.

• التنفيذ: Hello RCE! ← تم إلغاء تسلسل الحمولة، ونفّذت الدالة السحرية __wakeup() كودًا يتحكم به المهاجم.

الوقاية • لا تستخدم unserialize() على مدخلات غير موثوقة. استبدلها بـ json_decode() أو بدائل أكثر أمانًا.

• حافظ على تحديث GiveWP وجميع إضافات ووردبريس.

• انشر جدار حماية لتطبيقات الويب (WAF) لحظر الحمولات المسلسلة الخبيثة.

• اتبع مبدأ الامتياز الأقل: شغّل PHP وحسابات قاعدة البيانات بأقل الصلاحيات المطلوبة.

النتائج:

  • Regex القديم: ❌ يفشل في اكتشاف الحمولة
  • Regex الجديد: ✅ يكتشف المدخل المسلسل لكنه لا يمنع RCE

الرؤية الأساسية: لا تعتمد أبدًا على regex لتأمين unserialize(). الطريقة الأكثر أمانًا هي تجنب إلغاء تسلسل المدخلات غير الموثوقة تمامًا.


🛡 الوقاية

  • لا تستخدم unserialize() على مدخلات غير موثوقة؛ فضّل json_decode() أو بدائل آمنة أخرى.
  • حافظ على تحديث GiveWP وجميع إضافات ووردبريس.
  • انشر جدار حماية لتطبيقات الويب (WAF) لحظر الحمولات الخبيثة.
  • طبّق مبدأ الامتياز الأقل لحسابات PHP وقاعدة البيانات.

📱 تابع تحليلنا الأسبوعي للثغرات

أدير قناتين على تيليغرام مخصصتين لأبحاث واستغلال الثغرات:

  1. GO-TO CVE الحلقات الأسبوعية: كل أسبوع، نغوص في عمق ثغرة CVE جديدة ونشارك تحليلًا مفصلاً وعروضًا ورؤى. 🔗 انضم إلينا هنا

  2. CVEdb – أرشيف الاستغلالات: تؤرشف هذه القناة استغلالات اليوم الأول (1-day exploits) وPoCs مخصصة للثغرات. مصدر رائع للباحثين الذين يريدون رؤية تقنيات الاستغلال النشطة. 🔗 انضم إلى CVEdb

تابع القناتين للبقاء على اطلاع بأحدث الثغرات وتقنيات الاستغلال ورؤى أبحاث الأمن.


📚 المراجع

  • NVD CVE-2024-12877
  • تحليل Wordfence
  • مصدر GiveWP

⚖️ إخلاء مسؤولية قانوني

هذا المستودع مخصص لأغراض تعليمية وبحثية فقط. استغلال الثغرات بدون إذن غير قانوني وغير أخلاقي. المؤلف ليس مسؤولًا عن إساءة الاستخدام.

تنزيل الأداة