Aussi appelé : Magecart · skimmer CB · e-skimming · formjacking
Comment ça fonctionne
Le pirate entre généralement par un module vulnérable, un mot de passe volé ou un thème piraté, puis dépose une porte dérobée pour pouvoir revenir.
Variante navigateur : un script JavaScript, souvent déguisé en fichier CSS, en bibliothèque connue ou en outil d'analytics, lit les champs du formulaire de paiement et les envoie vers un serveur externe.
Variante serveur : du code PHP obfusqué est glissé dans les fichiers du cœur (contrôleurs, classes) ou dans la base de données. Il remplace le bloc de paiement par un faux formulaire de carte (numéro, date, CVV, titulaire) plus crédible que jamais, puisque servi par votre propre site.
Le code ne s'active souvent que sur la page de commande, et parfois seulement pour certains visiteurs, ce qui le rend invisible lors d'une visite rapide de l'accueil.
Les attaquants volent aussi fréquemment les identifiants de l'administration en modifiant la page de connexion, pour garder la main même après un nettoyage partiel.
Les symptômes
- Des clients signalent des fraudes sur leur carte peu après une commande
- Un formulaire de carte apparaît alors que votre prestataire redirige normalement vers sa propre page
- Des commandes restent « en attente de paiement » alors que le client dit avoir payé
- Votre banque ou votre prestataire de paiement vous signale un point de compromission commun
Les indices techniques
- Un script chargé depuis un domaine inconnu sur la page de commande, parfois enregistré récemment
- Des fichiers du cœur (classes/, controllers/ sur PrestaShop) différents de l'archive officielle de votre version
- Des fichiers .css ou .js qui contiennent du code exécutable inhabituel ou très long sur une seule ligne
- Des paires de fichiers au nom aléatoire (script PHP + fausse image) dans des dossiers publics
- Des dates de modification antidatées : se fier à la date de changement réelle (ctime) plutôt qu'à celle affichée
Retour de terrain (anonymisé)
Sur une boutique PrestaShop 1.6, le skimmer revenait après chaque nettoyage d'un précédent prestataire : 22 fichiers du cœur avaient été modifiés et 17 portes dérobées étaient cachées sous forme de paires script + fausse image. Un faux formulaire de carte était injecté côté serveur et la page de connexion à l'administration volait les identifiants.
Le nettoyage
Étape 1
Couper l'hémorragie
Désactiver temporairement le paiement par carte ou passer la boutique en maintenance, après avoir copié l'état actuel du site.
Étape 2
Comparer au cœur officiel
Comparer chaque fichier du CMS à l'archive officielle de la version exacte installée et restaurer tout fichier modifié.
Étape 3
Traquer les portes dérobées
Rechercher les scripts dans les dossiers d'images et de fichiers, les overrides, les modules et la base de données, puis les isoler en quarantaine.
Étape 4
Régénérer tous les accès
Mots de passe de l'administration, de la base de données, de l'hébergement et clés d'API du prestataire de paiement.
Étape 5
Verrouiller
Bloquer l'exécution de PHP dans les dossiers publics, rendre le cœur non modifiable par le serveur web, activer un contrôle d'intégrité quotidien.
Étape 6
Préparer les obligations
Chronologie de l'incident et données touchées pour la notification à la CNIL et l'information de la banque.
Éviter que ça revienne
- Préférer un paiement par redirection ou champs hébergés par le prestataire : la carte n'est jamais saisie sur votre page
- Mettre à jour le CMS, les modules et PHP ; supprimer les modules inutilisés
- Ne jamais installer de module ou de thème piraté (« nulled »)
- Surveiller l'intégrité des fichiers et les scripts de la page de paiement
Questions fréquentes
Un antivirus peut-il détecter un skimmer ?
Rarement. Les variantes serveur ne laissent rien sur l'ordinateur du client et les variantes JavaScript sont obfusquées et changent souvent. La détection passe par l'analyse du site lui-même.
Dois-je prévenir la CNIL ?
Un vol de données de carte est une violation de données personnelles : la notification à la CNIL est en principe obligatoire sous 72 heures, et l'information des clients s'impose souvent en cas de risque élevé. Voir notre guide dédié.