Prestashop est un CMS (système de gestion de contenu) open-source permettant de créer des sites e-commerce. Il est utilisé sur plus de 300 000 projets. Il y a 3 semaines, dans notre article précédent, nous vous avons parlé d’une faille permettant d’accéder aux données stockées dans la base de données et de la possibilité de les modifier. Une faille supplémentaire qui utilise cet accès à la base de données a été découverte en juillet 2022. Elle permet à un attaquant d’accéder au serveur de l’application et de modifier le site internet. Ainsi, certains attaquants ont pu créer de faux formulaires de paiement pour récupérer les cartes bancaires des utilisateurs. Cette faille nécessite auparavant que l’attaquant ait un accès à la base de données. Elle a donc pu être exploitée en se basant sur l’injection SQL dont nous avons parlé mi-août. Si vous avez manqué notre newsletter, n’hésitez pas à aller la lire! 🕵️ Explication de la faille Prestashop a observé un pattern commun dans les attaques menées:
Nous avons tenté de comprendre et nous avons fait des hypothèses sur le fonctionnement de la faille permettant à l’attaquant de prendre ensuite le contrôle d’un compte sur le serveur. La faille est due aux données de paramétrage du cache de Smarty, le moteur de template de Prestashop. Ces paramètres sont mis dans la base de données et sont donc ensuite récupérés par Smarty Cache. Lors de cette récupération, Smarty Cache va lire les commandes qui ont été ajoutées par l’attaquant dans la base de données à son intention. Ainsi, l’attaquant demande à Smarty Cache de créer un fichier avec un point d’entrée auquel il peut accéder, c’est le fichier blm.php. Comme l’attaquant a ensuite accès au code, il peut récupérer des informations sur le serveur et il peut ajouter un formulaire de paiement pour récupérer les cartes des utilisateurs qui sont le plus souvent chiffrées dans la base de données et donc non exploitables. Les cartes sont ensuite envoyées au serveur de l’attaquant, c’est une attaque d’e-skimming. Pour corriger cette faille, les développeurs de Prestashop ont ouvert une PR pour passer les paramètres de Smarty dans un fichier plutôt que dans la base de données. Elle a été mergée hier, mardi 13 septembre, par les développeurs de Prestashop et devrait être dans la prochaine release. 🛡 Comment se protéger ? En tant que développeur utilisant Prestashop:
En tant que développeur:
En tant qu’utilisateur:
🏹 Pour aller plus loin
Nous avons pour ambition de sécuriser le web, et pour atteindre cet objectif, nous avons besoin de vous ! Si vous avez des questions, des suggestions ou le moindre doute, n'hésitez pas à contacter notre équipe sécurité : security@theodo.fr. |