Piratage PrestaShop

Détecter et réagir au piratage de votre boutique PrestaShop

Une erreur, un problème ou une simple demande d'information ?
Vous pouvez nous contacter !

Votre boutique a-t-elle été piratée ?

Les boutiques PrestaShop sont des cibles de choix : elles manipulent des données clients et des paiements. Les attaques les plus fréquentes injectent un faux formulaire de paiement dans le tunnel de commande pour voler les numéros de carte bancaire, ajoutent un compte administrateur ou déposent des fichiers PHP permettant de reprendre la main sur le site plus tard.

Une infection est souvent discrète : la boutique continue de fonctionner normalement en apparence.

Les signes qui doivent alerter

  • des clients signalent des fraudes sur leur carte bancaire après une commande sur votre site
  • une étape de paiement inhabituelle apparaît (formulaire de carte bancaire directement sur votre site alors que votre module de paiement redirige vers la banque)
  • des redirections vers d’autres sites, des publicités ou du contenu inconnu
  • un avertissement de Google Safe Browsing ou de votre navigateur
  • des employés ou des modules que vous n’avez pas créés ou installés dans le back-office
  • une hausse soudaine de la consommation de ressources ou d’envois d’emails

Les vérifications à effectuer

Dans le back-office

  • Paramètres avancés -> Équipe -> Employés : vérifiez qu’aucun compte inconnu n’a été ajouté, en particulier avec le profil SuperAdmin
  • Modules -> Gestionnaire de modules : recherchez les modules que vous ne reconnaissez pas, ou dont le nom imite un module officiel
  • Paramètres avancés -> Logs : repérez les connexions et actions inhabituelles

Dans les fichiers

Connectez-vous en SSH (voir tutoriel) et placez-vous dans le répertoire de votre boutique, par exemple ~/www.

Lister les fichiers PHP modifiés au cours des 7 derniers jours :

find ~/www -name "*.php" -mtime -7 -not -path "*/var/cache/*" -not -path "*/cache/smarty/*"

Rechercher des fichiers PHP dans les répertoires qui ne devraient contenir que des images ou des fichiers téléchargés :

find ~/www/img ~/www/upload ~/www/download -name "*.php" -not -name "index.php"

Rechercher les fonctions couramment utilisées par le code malveillant pour se dissimuler :

grep -rlE "eval\(base64_decode|eval\(gzinflate|eval\(str_rot13|assert\(\\\$_(POST|GET|REQUEST)" ~/www --include=*.php

Ces commandes peuvent remonter des faux positifs (certains modules légitimes utilisent ces fonctions) : chaque résultat doit être examiné avant toute suppression.

Pensez également à comparer vos fichiers avec une sauvegarde antérieure, disponible dans ~/admin/backup/ :

diff -rq ~/admin/backup/2026-09-01/files/www/ ~/www/ | grep -v cache

Dans les logs

Les logs de vos sites permettent de repérer des requêtes POST vers des fichiers inhabituels, des accès répétés à votre répertoire d’administration ou des appels à des fichiers qui n’existent pas dans PrestaShop.

Avec l’outil Cleaner de DevCustom

DevCustom met à disposition Cleaner, un excellent outil d’analyse spécialisé dans les piratages PrestaShop : Nettoyage hack PrestaShop.

Il s’agit d’un script PHP à déposer à la racine de votre boutique puis à ouvrir dans votre navigateur. Il vérifie l’intégrité de vos fichiers, corrige les infections qu’il identifie avec certitude et produit un rapport détaillé : les lignes en rouge doivent impérativement être traitées, celles en orange doivent être analysées. Il peut aussi être lancé régulièrement via une tâche planifiée.

Comme le rappelle son auteur, c’est un outil et non une solution complète : il ne dispense pas des autres actions décrites ci-dessous.

Que faire en cas de piratage ?

1. Limiter les dégâts

  • passez la boutique en maintenance (Paramètres de la boutique -> Général -> Maintenance) ou en mode catalogue pour stopper les paiements frauduleux
  • si nécessaire, restreignez l’accès au site à votre propre adresse IP pendant l’intervention
  • faites une copie de l’état actuel des fichiers et de la base de données : elle servira à l’analyse et à identifier la faille

2. Restaurer une version saine

Votre hébergement Ethersys conserve une sauvegarde journalière de vos fichiers et bases de données pendant 30 jours. Plusieurs options s’offrent à vous :

  • restauration via l’interface : depuis la page Restauration de sauvegardes de votre manager, choisissez une date antérieure à l’infection, puis les fichiers et/ou la base de données à restaurer
  • restauration via SSH : pour un contrôle plus fin, synchronisez uniquement les fichiers de votre choix depuis ~/admin/backup/YYYY-MM-DD/files/, et restaurez la base depuis ~/admin/backup/YYYY-MM-DD/mysql/
  • restauration partielle : si l’infection ne concerne que les fichiers, vous pouvez restaurer les fichiers seuls et conserver la base de données actuelle, afin de ne pas perdre les commandes passées depuis

Attention, la restauration remplace les données existantes : les commandes, clients et fichiers ajoutés depuis la date choisie seront perdus s’ils n’ont pas été copiés au préalable. Toutes les procédures sont détaillées sur notre page Sauvegarde et sur celle dédiée aux dumps MySQL.

Si vous ne parvenez pas à dater l’infection, l’outil Cleaner ou la comparaison de plusieurs sauvegardes successives vous aidera à identifier la dernière version saine.

3. Corriger la faille

Restaurer une sauvegarde ne suffit pas : si la faille est toujours présente, la boutique sera de nouveau infectée.

  • mettez à jour PrestaShop vers la dernière version de votre branche ainsi que tous vos modules et votre thème
  • supprimez les modules inutilisés, et remplacez ceux qui ne sont plus maintenus
  • remplacez tout fichier du cœur modifié par sa version originale, téléchargée depuis le site officiel pour votre version exacte
  • vérifiez que le répertoire d’installation install a bien été supprimé et que votre répertoire d’administration porte un nom difficile à deviner

4. Changer tous les accès

Partez du principe que tous les identifiants ont pu être dérobés :

  • mots de passe de tous les employés du back-office
  • mot de passe de la base de données (pensez à le reporter dans app/config/parameters.php ou config/settings.inc.php selon votre version)
  • comptes FTP et clés SSH
  • clés d’API de vos modules de paiement et services tiers

Les recommandations de notre page Sécurité de l’espace web permettent ensuite de limiter l’impact d’une éventuelle nouvelle intrusion.

5. Informer si nécessaire

Si des données personnelles ou bancaires de vos clients ont pu être dérobées, vous devez notifier la CNIL dans les 72 heures, prévenir votre banque ou prestataire de paiement, et le cas échéant informer les clients concernés.

Et n’oubliez pas que chez Ethersys vous avez un support téléphonique humain qui peut vous accompagner dans ces démarches, c’est inclus dans votre abonnement !