Problème d'accès à l'administration (deux mots de passe)

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Problème d'accès à l'administration (deux mots de passe)

    Bonjour,
    A une époque, j'avais sécurisé mon site en ajoutant une double authentification. L'accès à l'administration du site via /administrator générait la fenêtre suivante :
    Cliquez sur l'image pour l'afficher en taille normale  Nom : connection.webp  Affichages : 0  Taille : 3,5 Ko  ID : 2055822
    Ensuite, j'avais accès à la fenêtre d'authentification classique.
    Le problème est que je n'arrive plus à m'authentifier sur la première fenêtre, alors que je suis certain que ni le nom d'utilisateur ni le mot de passe n'ont été modifiés.
    Je n'ai d'ailleurs pas touché au site depuis très longtemps. La seule chose qui a changé, c'est l'hébergeur.
    Quelqu'un aurait une idée de la façon de résoudre le problème ?
    Merci.
    Dernière édition par 2fray à 15/10/2023, 23h54

  • #2
    Désactivation/suppression de otpKey et otep pour tous les super utilisateursBonjour,

    Le plus simple c'est de desactiver les deux plugins mais comme il est impossible de se connecter à l'administration de joomla 3, il faut écrire directement dans la base de données via phpmyadmin.

    Alternativement une solution plus simple consiste à suivre les étapes suivantes :
    1. - Ouvrir un éditeur comme notepad++ puis de copier le code indiqué dans le lien suivant : https://gist.github.com/medigeek/28a...769130a6faf559
    et de l'enregistrer sous un nom avec l'extension .php comme joomla-reset-two-factor.php


    Voici le code (si la page n'est pas accessible) :

    Code PHP:

    <?php​

    /* Ce script désactive le plugin d'authentification à deux facteurs de Joomla!
     * et efface les valeurs otpKey et otep pour les Super Utilisateurs.
     * Il vous permet de vous connecter lorsque vous ne pouvez pas utiliser
     * Google Authenticator pour une raison quelconque.
     
     * Utilisation :
     * Placez-le dans le répertoire racine de Joomla! 3.x (où se trouvent configuration.php
     * et index.php) et exécutez-le. Ensuite, connectez-vous et laissez le champ de la
     * clé de sécurité vide.
     
     * Avertissement : Utilisez avec précaution. Faites une sauvegarde avant utilisation.
    */​

    define('_JEXEC', 1);
    define('JPATH_BASE', __DIR__);

    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    // Charger les définitions du système
    if (file_exists(JPATH_BASE . '/defines.php')) { require_once JPATH_BASE . '/defines.php'; }
    if (!defined('_JDEFINES')) { require_once JPATH_BASE . '/includes/defines.php'; }

    require_once JPATH_LIBRARIES . '/import.legacy.php'; //Obtenir le framework.
    require_once JPATH_LIBRARIES . '/cms.php'; // Bootstrap the CMS libraries.

    class Reset2FA extends JApplicationCli
    {
        public function execute()
        {
            $this->out('Initialising');
            $db = JFactory::getDbo();
            $query = $db->getQuery(true);
            $query2 = $db->getQuery(true);

            //get users by group: (array of integers)
            $sadminids = JAccess::getUsersByGroup(8); // 8 = Super Users
            $strsadminids = implode(',', $sadminids);
            $this->out(sprintf('Super User IDs: %s', $strsadminids));

            $this->out('Désactivation du plugin twofactorauth (totp et yubikey)');
            // Champs à mettre à jour.
            $fields = array(sprintf('%s = 0', $db->quoteName('enabled')));
            // Conditions for which records should be updated.
            // plg_twofactorauth_totp
            // plg_twofactorauth_yubikey
            $conditions = array(sprintf('%s LIKE %s', $db->quoteName('name'), $db->quote('plg_twofactorauth_%')));
            $query->update($db->quoteName('#__extensions'))->set($fields)->where($conditions);
            $db->setQuery($query);
            $result = $db->execute();
            
            $this->out('Désactivation/suppression de otpKey et otep pour tous les super utilisateurs');
            // UPDATE 2
            $fields2 = array(
                $db->quoteName('otpKey') . " = ''",
                $db->quoteName('otep') . " = ''",
                );
            // Conditions pour lesquelles les enregistrements doivent être mis à jour.
            // otpKey
            // otep
            $conditions2 = array(
                $db->quoteName('otpKey') . " != ''",
                $db->quoteName('otep') . " != ''",
                sprintf('%s IN (%s)', $db->quoteName('id'), $strsadminids)
            );
            $query2->update($db->quoteName('#__users'))->set($fields2)->where($conditions2);
            $db->setQuery($query2);
            $result2 = $db->execute();
            $this->out('Terminé');
        }
    }

    JApplicationCli::getInstance('Reset2FA')->execute();
    ?>​

    2. - transférer ce fichier à la racine de votre site au même endroit que configuration.php (par exemple avec votre logiciel FTP)

    3. - dans le navigateur, taper le nom de domaine suivi du nom de fichier .php, cela donnera par exemple https://nomdesite.fr/joomla-reset-two-factor.php



    Le script va désactiver la double authentification, il reste à supprimer ce fichier puis se connecter avec l'identifiant et le mot de passe habituel.

    Dans les deux cas (phpmyadmin ou le script), modifier votre base de données avec précaution et effectuer une sauvegarde avant toute modification.

    Si vous souhaitez, vous pouvez activer de nouveau et redéfinir la double authentification, mon conseil est bien évidemment de passer en Joomla 4 voir Joomla 5 si vous avez la possibilité.
    Pour info, Joomla 3 n'est plus suivi depuis le mois d'août 2023 sauf pour ceux qui ont opté pour un suivi payant de 18 mois supplémentaires, proposé par une société tierce
    (incluant uniquement les correctifs pour les découvertes de failles de sécurité... ).
    Dernière édition par daneel à 16/10/2023, 08h09
    Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

    Commentaire


    • #3
      Bonjour,
      Je vous remercie. A priori, le scritpt s'exécute, mais ça ne change rien. Est-il possible que la première fenêtre provienne d'une extension tierce ? J'avais mis en place cette double authentification il y a des années, et je ne me souviens absolument pas comment je m'y étais pris.
      Dans la table users, les champs optKey et otep étaient initialement vides. Est-ce qu'il n'auraient pas dû être à 1 si cette procédure d'authentification était activée (je les ai passés à 0 sans que ça ne change rien non plus) ?
      Cordialement.
      Dernière édition par 2fray à 16/10/2023, 21h00

      Commentaire


      • #4
        Bonjour,

        Si ces extensions ne sont pas en cause, ne serait-ce pas un couple .htaccess//htpasswd dans le dossier administrator ?
        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

        Commentaire


        • #5
          C'était bien ça. Merci beaucoup. Je n'ai plus qu'à m'occuper de la migration.

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X