Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum osCommerce-fr _ Installation - fonctionnement _ perte du mot de passe admin

Écrit par : aubonheurdesyeux 16 Feb 2012, 10:44

j'ai os commerce 2010 et j'ai perdu mon mot de passe admin !
comment le retrouver ?
merci

Écrit par : chti_poupon 25 Feb 2012, 10:03

Citation (lol_bozz @ 28 Sep 2011, 17:18) *
Bonjour,

Il y a quelques mois j'ai commencé à faire un site oscommerce en interne.
J'ai laissé tombé un moment, et maintenant que je veux m'y remettre je ne me souviens plus de mon mot de passe...

C'est à la fenêtre de connexion de la page http://127.0.0.1:8888/catalog/admin que je bloque...
je n'arrive plus à me souvenir de l'utilisateur et du mot de passe.

Est-il possible de les récupérer ?

merci d'avance, car je ne souhaite pas tout refaire...
Vincent

Une chtite recherche, çà peut servir...
Citation
j'ai os commerce 2010

Ce n'est pas une bonne information:
Elle se trouve normalement sur la page admin outils renseignements sur le serveur ohmy.gif
Dans ton cas, c'est pas vraiment possible... blink.gif
Va donc voir dans le début du fichier:
catalog/includes/application_top.php ce qui est mis sur la ligne :
Code
// define the project version
  define('PROJECT_VERSION', 'xxxxxxxxxxxxxxxxxxxx');

Tu le recopies daans ta signature !
Merci d'avance.
Chti poupon

Écrit par : N.Serge 26 Feb 2012, 19:11

n'y avait il pas une fichier qui permettais de recreer un nouveau mot de passe ???

Serge

Écrit par : francois21 26 Feb 2012, 21:06

Bonsoir
Normalement tu peux faire cela par phpmyadmin avec la requette ci dessous

DROP TABLE IF EXISTS `administrators`;
CREATE TABLE `administrators` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`user_password` varchar(60) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Contenu de la table `administrators`
--

INSERT INTO `administrators` (`id`, `user_name`, `user_password`) VALUES
(1, 'admin', '$P$DlatwtWZMEMWSB2YeTh9TYL7gJF5fX0');

Tu n'aura plus qu'a te logger avec
login=admin
et
mdp=admin

ensuite tu remet tes vrais login et mdp via ton admin

Écrit par : julien038 9 Mar 2012, 13:10

Ou tout simplement dans le phpmyadmin, tu créés un nouveau compte admin sans forcément passer par la requete sql (table administrators, onglet inserer). Et ensuite tu peux supprimer le compte admin dont le mot de passe t'est inconnu.

Écrit par : francois21 9 Mar 2012, 13:47

Citation
Ou tout simplement dans le phpmyadmin, tu créés un nouveau compte admin sans forcément passer par la requete sql (table administrators, onglet inserer). Et ensuite tu peux supprimer le compte admin dont le mot de passe t'est inconnu.


Comment met tu le mot de passe?
Si tu fait les manips via phpmyadmin comme tu l'indique ci dessus,
vu qu'il est codé via osco, si tu rentre un admin avec pour nom "truc".
Lors de ton identification il faudra rentrer "truc et un mot de passe mais vu que dans la bdd il sera vide==>donc echec
si tu rentre "truc" et tu met en clair un mdp via phpmyadmin, cela ne marchera pas non plus.

Écrit par : chti_poupon 10 Mar 2012, 11:47

Bonjour
S'il n'y a qu'un seul administrateur d'inscrit il appert qu'il y a encore plus simple idea.gif :
par phpmyadmin, aller dans la table administrators, détruire la ligne pour vider la table
On se retrouve à la connexion dans catalog/admin à la création d'un premier compte administrateur.
Ya + K ohmy.gif ohmy.gif shock.gif biggrin.gif
Chti poupon
PS:Ce qui permet de souligner, une fois de plus, que le répertoire admin doit être renommé.

Écrit par : Gnidhal 10 Mar 2012, 12:54

oui, aussi smile.gif
sinon le principe de françois21 est pas mal mais risque peut-être de ne pas marcher car il manque le salt je crois dans le password et si il y a déjà un admin en 1 ça passera pas. Je ferais plutot:

Code
INSERT INTO `administrators` (`user_name`, `user_password`) VALUES
('tartempion', '4b0103aa039dc784c798ee767b1178d6:ab');

qui créé un admin avec nom ='tartempion' et mot de passe ='admin'
Ensuite il vaut mieux changer le mot de passe depuis le panneau d'administration, mais tu fais ce que tu veux hein ?

Cela dit, des boutiques hackées car le dossier admin n'a pas été renommé et qu'il n'y a pas de protection htaccess sur ce dossier, il y en a des milliers.
Sur mon site j'ai enregistré les premières semaines plus de 5 tentatives de hack de ce type chaque jour:
'/admin/banner_manager.php/login.php',
'/admin/file_manager.php/login.php',
'/admin/categories.php/login.php',
'/admin/file_manager.php/login.php?action=processuploads',
et j'en passe...
En ayant marre de ces attaques, j'ai mis une trappe dans un dossier admin qui ajoute automatiquement l'ip de l'agresseur en banni dans le .htaccess de la racine.
Désormais je n'ai plus que 1 à 2 tentatives par semaine.

Une solution équivalente existe avec une contrib : osc_sec http://addons.oscommerce.com/info/8283

Écrit par : francois21 10 Mar 2012, 19:10

Bonjour

Citation
oui, aussi
sinon le principe de françois21 est pas mal mais risque peut-être de ne pas marcher car il manque le salt je crois dans le password et si il y a déjà un admin en 1 ça passera pas. Je ferais plutot:

Sauf que ma requete complete commence par "DROP TABLE IF EXISTS `administrators`;"
et ensuite creer la table qui est donc vide et ne peut pas avoir un admin en 1 biggrin.gif

Citation
il manque le salt

Je ne suis pas un expert, c'est quoi le "salt".

Chaque fois que j'ai voulu acceder a une admin dont je ne connaissais plus le login ou le mot de passe, si j'avais acces a phpmyadmin, en mettant la requete ci dessus complete j'ai toulours eu acces avec admin en login et admin en mdp.

Citation
INSERT INTO `administrators` (`user_name`, `user_password`) VALUES
('tartempion', '4b0103aa039dc784c798ee767b1178d6:ab');

c'est vrai que c'est plus rapide et plus court. smile.gif

Merci pour toute ces interventions sur le forum qui permettent de progresser.

Écrit par : Gnidhal 21 Mar 2012, 22:10

Citation (francois21 @ 10 Mar 2012, 19:10) *
Citation
il manque le salt

Je ne suis pas un expert, c'est quoi le "salt".
Le salt (sel en français) est un ingrédient qui relève les saveurs. smile.gif
Sans rire, ça s'appelle comme ça et c'est une clé aléatoire qui double la sécurité du mot de passe.
Si tu regardes le code de la fonction d'encryptage du password dans osC, tu vois que cette option est utilisée :
Code
  function tep_encrypt_old_password($plain) {
    $password = '';
    for ($i=0; $i<10; $i++) {
      $password .= tep_rand();
    }
    $salt = substr(md5($password), 0, 2);
    $password = md5($salt . $plain) . ':' . $salt;
    return $password;
  }
dans la version 2.3.1 ce mode de cryptage est passé par la classe PasswordHash qui fait la même chose en mieux.
Donc, pour être compatible avec toutes les versions (la 2.3.1 sait lire les anciens mots de passe avec salt) il vaut mieux créer un pass avec cette clé.
Comme tu le vois le salt est généré de manières aléatoire et on extrait 2 caractères qui sont accolés au mot de passe d'origine avant le cryptage par MD5 puis cette même clé est ajoutée en fin séparée par ":"
MD5 n'a pas de fonction inverse qui permet de décrypter on fonctionne donc par comparaison : on saisit un mot de passe, on le crypte et on vérifie que le résultat est le même que ce qui est stocké en bdd.
Cela a inspiré certains hackeurs qui ont constitué des bases de données de mots de passe cryptés : des millions de combinaisons sur la base d'un MD5 de chaines aléatoires avec en priorité les mots du dico. C'est beaucoup plus rapide de chercher dans une liste existante que de générer chaque possibilité puis de comparer.
La première solution dite du "dictionnaire" ne fonctionne pas sur les mots de passe codés avec un salt car il faut tenir compte de ces deux caractères en plus ce qui multiplie pour chaque mots du dico les possibilités par plus de 1500. Peu probable de sctocker cela dans un fichier.
Il ne reste donc que le système de la force brute : reconstituer une base de données de mots de passe en tenant compte du salt, lisible ne clair à la fin de la chaine et comparer chaque occurrence.
Bien sur, la base de recherche sera généralement un dictionnaire de mots les plus utilisés mais il faut recrypter à chaque fois.

La casse d'un mot de passe dépendra donc de sa complexité de base :
5 caractères (a-z en minuscule) (11881376 combinaisons) demandent quelques minutes à un gros processeur
6 caractères (A-Z a-z) (près de 20.000.000.000)avec les majuscules possibles et là ça devient nettement plus long (plusieurs heures)
Si tu ajoutes les chiffres et que tu passes à 7 caractères (A-Z a-z 0-9) (plus de 3.500.000.000.000 ?), là on peut passer à plus d'un jour et si tes chiffres, lettres, majuscules et minuscules sont habilement mélangés ça peut nécessiter des jours de calcul. Enfin ça dépend de la puissance du processeur et maintenant avec des engins à 6 coeurs, voire plus si on parallélise... quelques heures? minutes?
Mais ça peut aussi aller très vite, question de chance smile.gif
Allez pour être assez tranquille : 8 caractères avec accents + chiffres + ponctuation : une centaines de caractères possibles à la puissance 8 ? ça va faire chauffer le silicium!

Raison pour laquelle il est impératif quand on utilise un mot de passe de ne jamais utiliser un simple prénom ou date de naissance comme mot de passe. Ce genre de mot de passe même entre 6 et 8 caractères se casse en moins d'une heure par dictionnaire + force-brute
"martin", "sylvie", "pierre"... = cassés en moins de 10 minutes sur mon petit PC smile.gif
5 caractères en minuscule, des prénoms... facile! et avec la simple majuscule initiale, ça n'est pas plus long. En revanche martiN ou mArtIn... bien plus hard!

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)