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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-11972-POC — CVE-2024-11972 في Hunk Companion <1.9.0 يسمح للمهاجمين غير المُوثقين باستغلال نقاط نهاية REST API غير الآمنة وتثبيت إضافات ضعيفة، مما يعرض للخطر RCE، SQLi، XSS، و backdoors. | Kitploit
أدوات/GitHubGitHub/ronf98/cve-2024-11972-poc
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار أمان APIاختبار الاختراق
GitHubronf98/cve-2024-11972-poc

CVE-2024-11972-POC

CVE-2024-11972 في Hunk Companion <1.9.0 يسمح للمهاجمين غير المُوثقين باستغلال نقاط نهاية REST API غير الآمنة وتثبيت إضافات ضعيفة، مما يعرض للخطر RCE، SQLi، XSS، و backdoors.

عرض المستودع
14منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

الوصف

  • الاسم : CVE-2024-11972
  • درجة CVSSv3 : 9.8
  • الإصدارات المتأثرة : Hunk Companion < 1.9.0
  • تاريخ النشر : 30/12/24

CVE-2024-11972 هي ثغرة أمنية خطيرة في إصدارات إضافة Hunk Companion لووردبريس الأقدم من 1.9.0. يسمح هذا العطل للمهاجمين غير الموثقين باستغلال نقاط نهاية REST API غير المصرح بها بشكل صحيح، مما يمكنهم من تثبيت وتفعيل الإضافات من مستودع WordPress.org، بما في ذلك تلك القديمة أو التي تحتوي على ثغرات معروفة. يمكن أن يؤدي استغلال هذه الثغرة إلى مخاطر أمنية خطيرة، مثل تنفيذ تعليمات برمجية عن بُعد، وحقن SQL، وXSS، أو أبواب خلفية إدارية.

مثال شائع لإساءة استخدام هذه الثغرة هو مع إضافة WP Query Console. بمجرد تثبيتها باستخدام هذا الاستغلال، توفر الإضافة واجهة وحدة تحكم داخل ووردبريس حيث يمكن للمستخدمين تشغيل استعلامات SQL على قاعدة بيانات الموقع، مما يتيح سرقة البيانات، وإنشاء أبواب خلفية، واختراق كامل لقاعدة البيانات.

الاستغلال

المتطلبات

مكتبات بايثون المطلوبة -> argparse، requests، urljoin

الاستخدام

root@kitploit:~
options:
  -h, --help            show this help message and exit
  -u URL, --url URL     Base URL of the WordPress site (default: http://localhost/wordpress/).
  -p PLUGIN, --plugin PLUGIN
                        Plugin name to install (default: classic-editor).
  1. قم بتحميل exploit.py
  2. قم بتشغيله مع الوسائط الصحيحة - python exploit.py -u <insert wordpress URL> -p <insert plugin name>

مراجعة كود المصدر

تم تحديد نقطة النهاية الضعيفة، /wp-json/hc/v1/themehunk-import، في البداية بواسطة Daniel Rodriguez أثناء تحليل سجلات الوصول كجزء من تحقيق جارٍ. باستخدام هذه المعلومات يمكننا النظر داخل كود المصدر لنقطة نهاية الاستيراد. داخل الملف /import/core/class-installation.php يمكننا رؤية السطر التالي:

root@kitploit:~
204 |  $temp_file = download_url('https://downloads.wordpress.org/plugin/'.$slug.'.zip');

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

للتعمق أكثر في المشكلة، يمكننا النظر داخل /import/app/app.php، لنقارن بين الإصلاحات المختلفة التي تم تقديمها في الإصدارات 1.8.0 | 1.8.7 | 1.9.0 حيث قدم كل منها طبقة أخرى من الأمان:

1.8.0 (جميع الإصدارات الأقل من 1.8.7)

root@kitploit:~
register_rest_route( 'hc/v1', 'themehunk-import', array(
          'methods' => 'POST',
          'callback' => array( $this, 'tp_install' ),
          'permission_callback' => '__return_true',
      ) );

يقوم permission_callback دائمًا بإرجاع true، مما يسمح لأي مستخدم أو جهة غير موثقة بالوصول إلى نقطة النهاية باستخدام طلب POST. نظرًا لعدم وجود أي نوع من التحقق من Nonce أو أي نوع من عمليات المصادقة، يمكن للمهاجم تجاوز الأذونات المطلوبة وتثبيت الإضافة المطلوبة مباشرة.

1.8.7

في الإصدار 1.8.7، تم تقديم العديد من التحسينات الأمنية لمعالجة الثغرات الموجودة في الإصدارات السابقة، ولكن لا تزال نقطة النهاية /hc/v1/themehunk-import والتنفيذ العام يعانيان من ثغرات كبيرة:

root@kitploit:~
public function register_routes() {

    register_rest_route( 'hc/v1', 'themehunk-import', array(
      'methods' => 'POST',
      'callback' => array( $this, 'tp_install' ),
      'permission_callback' => function () {
// Check if the user is logged in
if ( ! is_user_logged_in() ) {
    return new WP_REST_Response( 'Unauthorized: User not logged in', 401 );
}

// Debug: Log the user role and capabilities to see what they have
$current_user = wp_get_current_user();
// error_log( 'Current user: ' . $current_user->user_login );
// error_log( 'User roles: ' . implode( ', ', $current_user->roles ) );
// error_log( 'User capabilities: ' . print_r( $current_user->allcaps, true ) );

// Ensure the user has the 'install_plugins' capability
if ( ! current_user_can( 'install_plugins' ) ) {
    return new WP_REST_Response( 'Unauthorized: Insufficient capabilities', 401 );
}

  // Get the nonce from the request header
        $nonce = $request->get_header('X-WP-Nonce');

        // Verify the nonce
        if ( ! wp_verify_nonce( $nonce, 'hc_import_nonce' ) ) {
            return new WP_REST_Response( 'Unauthorized: Invalid nonce', 401 );
        }

return true; // Permission granted

بينما يتضمن هذا الإصدار فحوصات للتأكد من أن المستخدم مسجل الدخول (is_user_logged_in()) ويتحقق من أن لديه الصلاحيات المناسبة (current_user_can('install_plugins'))، ويرسل استجابة 401 Unauthorized إذا لم يكن لديه، إلا أنه لا يزال يتجاهل المشكلة الرئيسية التي لم يتم معالجتها. يتم تقييم منطق Callback في ووردبريس فيما يتعلق بـ permission_callback على النحو التالي:

image

بمعنى أن الاستجابة الصحيحة ستكون إحدى القيم التالية - true | false | WP_Error. تنجم المشكلة عن حقيقة أن WP_REST_Response المرتجعة ليست قيمة منطقية أو WP_Error، نظرًا لأن ووردبريس لا يفسرها على أنها رفض (false) ولا خطأ (WP_Error()، فقد يقبلها ضمنيًا ويمنح الوصول لمستخدم غير موثق، مما لا يحل المشكلة الرئيسية بشكل أساسي.

1.9.0

نجح الإصدار 1.9.0 في حل المشكلة، مما جعل الثغرة غير قابلة للاستغلال:

root@kitploit:~
public function register_routes() {

    register_rest_route( 'hc/v1', 'themehunk-import', array(
      'methods' => 'POST',
      'callback' => array( $this, 'tp_install' ),
      'permission_callback' => function () {
      // Check if the user is logged in
      if ( ! is_user_logged_in() ) {
          return false;
      }

// Debug: Log the user role and capabilities to see what they have
$current_user = wp_get_current_user();
// error_log( 'Current user: ' . $current_user->user_login );
// error_log( 'User roles: ' . implode( ', ', $current_user->roles ) );
// error_log( 'User capabilities: ' . print_r( $current_user->allcaps, true ) );

// Ensure the user has the 'install_plugins' capability
if ( ! current_user_can( 'install_plugins' ) ) {
    return false;
}

  // Get the nonce from the request header
        $nonce = $request->get_header('X-WP-Nonce');

        // Verify the nonce
        if ( ! wp_verify_nonce( $nonce, 'hc_import_nonce' ) ) {
            return false;
        }

return true; // Permission granted

في هذا الإصدار، يمكننا رؤية إرجاع قيمة false الصحيحة إذا لم يكن المستخدم مسجل الدخول أو يفتقر إلى الصلاحيات الصحيحة، مما يضمن أن permission_callback يرفض الوصول غير المصرح به بشكل صحيح، مما يجعل الاستغلال غير ممكن.

تنزيل الأداة