Vulnérabilité 0 jour dans PrestaShop
Team Host.it 4 min de lecture
Contenu
Ce qui s'est passé L'équipe de développement et de maintenance de PrestaShop a été informée que les attaquants exploitaient un ensemble de vulnérabilités connues et inconnues du CMS pour injecter du code malveillant dans les sites Web construits dans PrestaShop, leur permettant d'exécuter des instructions arbitraires et potentiellement de voler les informations de paiement des clients.
En analysant ces attaques, l'équipe PrestaShop a identifié une chaîne de vulnérabilités inconnues qui sont en cours de correction. Le problème affecte les boutiques basées sur les versions 1.6.0.10 ou ultérieures, qui sont sujettes à des vulnérabilités d'injection SQL.
Les versions 1.7.8.2 et ultérieures ne sont pas vulnérables tant qu'elles n'exécutent pas de module ou de code personnalisé incluant une vulnérabilité d'injection SQL.
Les versions 2.0.0 et 2.1.0 du module "Wishlist" (blockwishlist) sont vulnérables.
Comment fonctionne l'attaque L'attaque nécessite que la boutique soit vulnérable aux exploits d'injection SQL. A ce jour, l'équipe de développement estime que la dernière version de PrestaShop et ses modules par défaut sont exempts de telles vulnérabilités.
Les attaquants ont ciblé les magasins qui utilisent des logiciels obsolètes ou des modules tiers vulnérables ou présentant des vulnérabilités inconnues.
Le mode opératoire récurrent est similaire au suivant :
L'attaquant envoie une requête POST au point de terminaison vulnérable à l'injection SQL.
Après environ une seconde, l'attaquant envoie une requête GET à la page d'accueil sans paramètres. Il en résulte un fichier PHP appelé blm.php qui est créé à la racine de la boutique.
L'attaquant envoie désormais une requête GET au fichier blm.php nouvellement créé, lui permettant d'exécuter des instructions arbitraires.
Après avoir pris le contrôle de la boutique, les attaquants injectent un faux formulaire de paiement dans la page de paiement publique. Dans ce scénario, les clients du magasin pourraient saisir les informations de leur carte de crédit dans le faux formulaire, les envoyant sans le savoir aux attaquants.
Il s'agit du modèle d'attaque courant jusqu'à présent, mais les attaquants peuvent en utiliser un autre, en utilisant des noms de fichiers différents, en modifiant d'autres parties du logiciel ou en supprimant leurs traces après l'attaque.
Que faire pour assurer la sécurité de votre boutique Tout d'abord, assurez-vous que votre boutique et tous les modules installés sont mis à jour avec la dernière version disponible. Cela devrait empêcher votre boutique d'être exposée à des vulnérabilités connues et activement exploitées.
Les attaquants pourraient utiliser les capacités de stockage MySQL du cache Smarty dans le cadre du vecteur d'attaque. Ces fonctionnalités sont rarement utilisées et désactivées par défaut, mais pourraient être activées à distance par l'attaquant.
En attendant la sortie d'un patch officiel, il est recommandé de désactiver physiquement cette fonctionnalité dans votre code PrestaShop pour bloquer la chaîne d'attaque.
Pour ce faire, localisez le fichier config/smarty.config.inc.php dans votre installation PrestaShop et supprimez les lignes 43 à 46 (dans le cas de PrestaShop 1.7) ou 40 à 43 (PrestaShop 1.6).
if ( Configuration :: get ( 'PS_SMARTY_CACHING_TYPE' ) == 'mysql' ) { include _PS_CLASS_DIR_ . 'Smarty/SmartyCacheResourceMysql.php' ; $smarty -> caching_type = 'mysql' ; } Comment vérifier si vous avez été attaqué Vérifiez les journaux d'accès de votre serveur pour les modèles d'attaque ci-dessus.
[14/juillet/2022:16:20:56 +0200] "POST /modules/XXX/XXX.php HTTP/1.1" 200 82772 "-" "Mozilla/5.0 (Macintosh ; Intel Mac OS version/10.0.1 Safari/602.2.14" - [14/juillet/2022:16:20:57 +0200] "GET / HTTP/1.1" 200 63011 "-" "Mozilla/5.0 (Macintosh ; Intel Mac OS Chrome/54.0.2840.98 Safari/537.36" - [14/juillet/2022:16:20:58 +0200] "POST /blm.php HTTP/1.1" 200 82696 "-" "Mozilla/5.0 (Windows NT 10.0 ; WOW64 ; rv:50.0) Gecko/20100101 Firefox/50.0" (Le chemin a été modifié pour des raisons de sécurité.)
Ne pas trouver ces modèles ne signifie pas que le site n’a pas été attaqué. Malheureusement, la complexité de l’attaque signifie que d’autres voies ou moyens auraient pu être utilisés pour exploiter la vulnérabilité.
Vérifier également les dates de modification des fichiers de l'espace Web permet d'identifier toute falsification.
En savoir plus L'équipe de développement de PrestaShop prépare et teste actuellement un patch pour sécuriser les boutiques.
Conseils pratiques Assurez-vous d'avoir installé les dernières versions de PrestaShop et des modules (y compris les thèmes).
Dans le cas de PrestaShop 1.7.1 et versions ultérieures, utilisez le module Open Source suivant pour vérifier la présence de la vulnérabilité : https://github.com/MathiasReker/blmvuln
Apportez la modification à la configuration de Smarty Cache comme indiqué dans les paragraphes précédents.
Vérifiez les journaux d'accès de votre hébergement.
Vérifiez la date de modification des fichiers dans votre espace web.
Mise à jour du 25/07/2022 L'équipe PrestaShop a publié la nouvelle version de PrestaShop 1.7.8.7 qui corrige la vulnérabilité. La mise à jour est recommandée.
E-commerce
Hébergement pour boutiques en ligne
PrestaShop, WooCommerce et Magento : performance, sécurité et datacenters en Italie.
Articles connexes
Des archives