prestashop banniere

Faille Prestashop : Auto injection 1.7 et 1.6 vulnérable

Les pirates ont trouvé un moyen d’utiliser une vulnérabilité de sécurité pour effectuer l’exécution de code arbitraire sur les serveurs exécutant les sites Web PrestaShop. Pour plus de détails, veuillez vous rendre sur le site de prestashop.

Table des matières

La faille ?

Pour le moment, ce problème semble concerner les boutiques basées sur les versions 1.6.0.10 ou supérieures, sujettes à des vulnérabilités d’injection SQL.

Les versions 1.7.8.2 et supérieures ne sont pas vulnérables à moins qu’elles n’exécutent un module ou un code personnalisé qui inclut lui-même une vulnérabilité d’injection SQL.

Notez que les versions 2.0.0~2.1.0 du module Wishlist (blockwishlist) sont vulnérables.

Comment fonctionne l’attaque

L’attaquant soumet une requête POST au point de terminaison vulnérable à l’injection SQL.

Après environ une seconde, l’attaquant soumet une requête GET à la page d’accueil, sans paramètres. Cela se traduit par la création d’un fichier PHP appelé blm.php à la racine du répertoire de la boutique.

L’attaquant soumet maintenant une requête GET au nouveau fichier qui a été créé, blm.php, lui permettant d’exécuter des instructions arbitraires.

Que font les pirates après avoir pirater votre shop

Après que les attaquants aient réussi à prendre le contrôle d’un magasin, ils ont injecté un faux formulaire de paiement sur la page de paiement du front-office. Dans ce scénario, les clients de la boutique pourraient entrer leurs informations de carte de crédit sur le faux formulaire et l’envoyer sans le savoir aux attaquants.

Bien que cela semble être le modèle courant, les attaquants peuvent en utiliser un autre, en plaçant un nom de fichier différent, en modifiant d’autres parties du logiciel, en plantant du code malveillant ailleurs ou même en effaçant leurs traces une fois l’attaque réussie.

Que faire pour assurer la sécurité de votre boutique

Tout d’abord, assurez-vous que votre boutique et tous vos modules sont mis à jour avec leur dernière version. Cela devrait empêcher votre boutique d’être exposée à des vulnérabilités d’injection SQL connues et activement exploitées.

Selon Prestashop, les attaquants exploitent les fonctionnalités de stockage de cache MySQL Smarty dans le cadre du vecteur d’attaque. Cette fonctionnalité est rarement utilisée et est désactivée par défaut, mais elle peut être activée à distance par l’attaquant. Jusqu’à la publication d’un correctif, nous vous recommandons de désactiver physiquement cette fonctionnalité dans le code de PrestaShop afin de briser la chaîne d’attaque.

Pour ce faire, localisez le fichier config/smarty.config.inc.php sur votre installation PrestaShop, et supprimez les lignes 43-46 (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';
}

Nous aimerions profiter de l’occasion pour souligner une fois de plus l’importance de maintenir votre système à jour pour prévenir de telles attaques. Cela signifie mettre à jour régulièrement à la fois votre logiciel PrestaShop et ses modules, ainsi que votre environnement serveur.