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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/tuannq2299/cve-2021-43408
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراق
GitHubtuannq2299/cve-2021-43408

CVE-2021-43408

تحليل فني واستغلال إثبات المفهوم لـ CVE-2021-43408، وهو ثغرة حقن SQL في إضافة WordPress Duplicate Post الإصدار 1.1.9، مع دليل استغلال خطوة بخطوة ونصائح الإصلاح.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-43408: إضافة ووردبريس Duplicate Post الإصدار 1.1.9 - حقن SQL

أولا: نظرة عامة

1. ما هو ووردبريس

WordPress هو برنامج CMS (نظام إدارة المحتوى) مفتوح المصدر، وهو نظام لإدارة المحتوى. بدلاً من استخدام لغة HTML البرمجية، كُتب ووردبريس بلغة البرمجة PHP باستخدام قاعدة بيانات MySQL. أسس ووردبريس المبرمج Matt Mullenweg وMike Little. حالياً، ووردبريس مملوك لشركة Automattic ومقرها في سان فرانسيسكو، كاليفورنيا بالولايات المتحدة الأمريكية.

2. CVE-2021-43408

إضافة Duplicate Post في ووردبريس للإصدارات 1.1.9 فما دون تعاني من ثغرة حقن SQL. هذا النوع من الاستغلال يسمح للمهاجم بحقن استعلامات SQL وبالتالي قراءة أو تعديل أو حتى حذف الموارد في قاعدة البيانات. يمكن استغلال هذه الثغرة من قبل أي مستخدم مصادق لديه صلاحية استخدام وظيفة إضافة Duplicate Post. افتراضياً، يمتلك المدير (Admin) هذه الصلاحية فقط، ومع ذلك يمكن تعديل الصلاحيات بحيث يتمكن المحرر (Editor) والكاتب (Author) والمساهم (Contributor) وحتى المشترك (Subscriber) من استخدام هذه الإضافة. تم اكتشاف CVE-2021-43408 في "11/19/2021" وتم تقييمها بمستوى HIGH وفق مقياس CVSS.

ثانيا: التحليل التفصيلي

السبب الجذري لهذه الثغرة هو أن البيانات المرسلة من طلب المستخدم لا يتم تعقيمها قبل تنفيذها في استعلام SQL. بشكل أكثر تحديداً، في الملف post/handler.php، داخل الدالة cdn_insert_post()

 function cdp_insert_post($id, $data, $times, $areWePro, $isChild = false, $p_ids = null, $site) {

        // Get Wordpress database
        global $wpdb;

        // Create empty array for new id(s) and error(s)
        $results = array('ids' => array(), 'error' => 0, 'counter' => 0);

        // Get Counter value
        $prefix = (($site != -1) ? $wpdb->get_blog_prefix($site) : $wpdb->get_blog_prefix());
        $newestId = $wpdb->get_results("SELECT post_id FROM {$prefix}postmeta WHERE meta_key = '_cdp_origin' AND meta_value = {$id} ORDER BY post_id DESC LIMIT 1", ARRAY_A);

المتغير $id يتم التحكم فيه من قبل المهاجم

يتم تمرير المتغير $id إلى دالة تحتوي على استعلام SQL دون أي تعقيم. يتم استدعاء هذه الدالة عبر Ajax الخاص بووردبريس wp_ajax_cdp_action_handling. يمكن ملاحظة أن المعامل id يُمرَّر عبر الدالة cdn_sanitize_array، حيث تمر حقول بيانات المقالة عبر الدالة sanitize_text_field، التي تقوم بإفلات (escape) أي علامة اقتباس ' في سلسلة البيانات.

يتم تطبيق sanitize_text_field على حقول البيانات

لكن الكود يحتوي على ثغرة عند تمرير بيانات الحقل الصحيح (Integer) إلى استعلام SQL المنفذ (حقل id)، حيث يمكن للمهاجم استغلال ذلك لإدراج عبارات SQL إضافية في قيمة هذا الحقل. لذلك، للتحكم في استعلام SQL، يحتاج المهاجم فقط إلى تجنب استخدام الرمز '.

ثالثا: العرض التوضيحي

1. البيئة

  • نظام التشغيل: Windows
  • Xampp: 7.1.33
  • ووردبريس: 5.0
  • إضافة Duplicate Post: 1.1.9

2. إثبات الاستغلال (PoC)

الخطوة 1: سجّل الدخول إلى مستخدم Admin، وقم بتثبيت إضافة Duplicate Post الإصدار 1.1.9. تدعم هذه الإضافة المستخدمين في استنساخ المقالات الموجودة.

الخطوة 2: انتقل إلى قسم Post، اختر مقالة واحدة، واختر الإجراء Copy ثم اضغط Apply.

الخطوة 3: اختر Setting: Default واضغط Copy.

الخطوة 4: اعترض طلب HTTP؛ الحقل المهم هنا هو id، ويمكن ملاحظة أن بيانات هذا الحقل تكون من نوع رقم صحيح (Integer).

الخطوة 5: قم بحقن حمولة (payload) حقن SQL، ثم أرسل الطلب ولاحظ أن الخادم يستجيب بعد 9 ثوانٍ -> نجاح حقن SQL. الحمولة: 1 and (select*from(select(sleep(9)))a)--

3. كود الاستغلال

رابعا: الإجراءات العلاجية

  • قم بتحديث الإضافة إلى الإصدارات 1.2.0 أو أحدث

خامسا: المراجع

  • https://appcheck-ng.com/security-advisory-duplicate-post-wordpress-plugin-sql-injection-vulnerability
تنزيل الأداة