WooCommerce piraté : symptômes, vol de cartes bancaires et nettoyage d'une boutique
Publié le · 12 min de lecture· Par Benjamin Bueno

Sommaire
- Les signes qu'une boutique WooCommerce est piratée
- Le skimmer de carte bancaire : comment le pirate vole les cartes de vos clients
- Le carding : des centaines de commandes échouées en quelques minutes
- Les failles WooCommerce et de ses extensions exploitées en 2025-2026
- Nettoyer une boutique WooCommerce sans perdre les commandes
- Vos obligations après un vol de données de cartes
- Prévenir un nouveau piratage de WooCommerce
- Quand confier le nettoyage à un professionnel
- Sources
En bref : Une boutique WooCommerce piratée se reconnaît à des commandes anormales (fausses commandes à 0 €, centaines de commandes « Échouée » en quelques minutes), à une redirection au moment du paiement, à des produits ou des prix modifiés, ou à des clients qui signalent une carte débitée après un achat chez vous. Le risque le plus grave est le skimmer : un script injecté dans la page de commande qui copie les numéros de carte vers un serveur tiers. Le nettoyage suit la méthode WordPress habituelle, avec trois précautions propres à une boutique : sauvegarder la base pour ne pas perdre les commandes, contrôler les tables wc_*, et révoquer les clés API REST, les webhooks et les clés de passerelle. Un vol de données de cartes entraîne des obligations : prévenir votre prestataire de paiement et, si des données personnelles sont concernées, notifier la CNIL sous 72 heures.
Une boutique WooCommerce reste un site WordPress : les portes d'entrée et la méthode de nettoyage sont celles de notre guide complet du nettoyage d'un site WordPress piraté. Ce qui change, c'est l'enjeu : une boutique encaisse des paiements, stocke des adresses et dialogue avec une passerelle, un transporteur, une comptabilité. Un pirate n'y cherche pas seulement du trafic, il y cherche des cartes bancaires.
Les signes qu'une boutique WooCommerce est piratée
Sur une boutique, le piratage se voit souvent d'abord dans WooCommerce lui-même, avant les signes classiques (redirections, pages de spam, alerte Google).
- Des fausses commandes : montants à 0 € ou de quelques centimes, adresses incohérentes, noms aléatoires, par dizaines dans la même heure.
- Des centaines de commandes « Échouée » en quelques minutes, chacune avec une carte différente : la signature du carding, détaillé plus bas.
- Une redirection au paiement : le client clique sur « Commander » et atterrit sur un autre site, ou sur une page de paiement qui n'est pas la vôtre.
- Des clients qui signalent une carte débitée par un tiers quelques jours après un achat chez vous. Plusieurs signalements rapprochés désignent presque toujours un skimmer.
- Des produits ou des prix modifiés, des descriptions remplacées par des liens, des produits que vous n'avez jamais créés.
- Des comptes clients créés en masse, avec des adresses e-mail aléatoires.
- Des e-mails de commande qui partent en spam, ou qui contiennent un lien ajouté.
- Un administrateur, un gestionnaire de boutique, une clé API REST ou un webhook que vous n'avez pas créés.
Devant un de ces signes, ne supprimez rien et ne restaurez pas de sauvegarde : les premiers gestes sont dans Site WordPress piraté : que faire dans la première heure. Pour une boutique, coupez aussi les paiements tant que la page de commande n'a pas été vérifiée.
Le skimmer de carte bancaire : comment le pirate vole les cartes de vos clients
Skimmer, formjacking
Un skimmer (ou formjacking) est un script JavaScript ajouté à la page de commande. Il lit ce que le client tape dans les champs de carte, ou affiche un faux formulaire par-dessus le vrai, puis envoie les données à un domaine du pirate. Le paiement légitime se déroule ensuite normalement : ni le client ni le marchand ne voient rien.
Trois cachettes documentées en 2025 :
Dans la base de données, par un widget
En janvier 2025, Sucuri a analysé un skimmer stocké dans wp_options, entrée widget_block : un simple bloc HTML ajouté depuis Apparence > Widgets. Actif seulement quand l'URL contenait « checkout » sans « cart », il créait un faux formulaire imitant Stripe ou détournait les champs existants, puis envoyait numéro, expiration, CVV et adresse, encodés en Base64 et chiffrés en AES-CBC, par navigator.sendBeacon vers deux domaines en .xyz. Aucun fichier modifié : un scan de fichiers ne trouvait rien.
Dans la page de commande, avec une porte dérobée
En mars 2025, toujours chez Sucuri, un skimmer visait les champs CyberSource d'une boutique WordPress : données exfiltrées sous forme de requête d'image (img-sort.php?validator=…), script muet quand les outils de développement sont ouverts, et un shell PHP protégé par cookie qui falsifiait les dates des fichiers. Le propriétaire avait remarqué des fichiers inconnus et des mouvements inhabituels sur des cartes de clients.
Dans un faux plugin, caché dans de fausses images
Le 29 octobre 2025, Wordfence a décrit un skimmer livré en faux plugin aux noms générés (license-user-kit, jwt-log-pro, cron-environment-advanced…), avec son JavaScript rangé dans de faux fichiers PNG : un en-tête d'image, puis du script inversé et encodé. Sur la page de commande, il attendait trois secondes, affichait une fausse « vérification bancaire » et capturait numéro, expiration et CVV, même dans les formulaires chargés en AJAX. Il volait aussi les identifiants WordPress à la connexion (filtre wp_authenticate_user) et offrait au pirate des points d'entrée AJAX pour se mettre à jour ou exécuter du PHP. Nous avions décrit un précédent dans notre article sur le malware de formjacking WooCommerce.
Comment repérer un skimmer sur votre page de commande
Un skimmer ne se voit pas dans l'administration. Il faut se comporter en client.
- En navigation privée, sans être connecté, ajoutez un produit au panier et allez jusqu'à la page de commande. Refaites-le depuis un téléphone.
- Ouvrez les outils de développement (F12), onglet Réseau, « Conserver le journal », puis remplissez le formulaire avec une carte de test de votre passerelle. Toute requête vers un domaine qui n'est ni le vôtre, ni celui de la passerelle, ni un service connu doit être expliquée ; méfiez-vous des requêtes d'image à longue chaîne de paramètres et des appels
sendBeacon. - Cherchez dans la base les scripts qui parlent de commande :
SELECT option_id, option_name FROM wp_options WHERE option_value LIKE '%checkout%' AND option_value LIKE '%<script%'; SELECT ID, post_title, post_type FROM wp_posts WHERE post_content LIKE '%<script%' AND post_status <> 'trash'; - Listez les extensions, comparez avec ce que vous avez installé, et cherchez les fonctions d'exfiltration jusque dans les images :
wp plugin list --fields=name,status,version grep -rlE "sendBeacon|atob\(" wp-content/plugins wp-content/uploads \ --include="*.js" --include="*.php" --include="*.png"
Plusieurs campagnes se taisent si un utilisateur est connecté ou si l'adresse IP a déjà été vue : un test depuis votre poste, connecté, ne prouve rien. Gardez le journal réseau comme preuve.
Le carding : des centaines de commandes échouées en quelques minutes
Le carding, ou test de cartes, n'est pas à proprement parler un piratage : un fraudeur qui détient des numéros volés utilise votre formulaire pour trier ceux qui fonctionnent encore. WooCommerce décrit le signe principal : une hausse importante des commandes au statut « Échouée », avec des achats de faible valeur, chacun avec une carte différente. Les robots ne passent pas par votre page : ils envoient leurs requêtes à /?wc-ajax=checkout ou au Store API, POST /wc/store/v1/checkout, utilisé par le bloc Commande, les portefeuilles express et certaines intégrations, ce qui interdit de le désactiver entièrement.
Ce que WooCommerce recommande :
- Activer la limitation de débit : depuis WooCommerce 9.6 (20 janvier 2025), le réglage est dans WooCommerce > Réglages > Avancé > Fonctionnalités, désactivé par défaut. Derrière Cloudflare ou un proxy, activez le mode proxy, sinon des visiteurs légitimes seront bloqués ensemble.
- Ajouter un CAPTCHA qui couvre aussi le Store API, pas seulement le formulaire visible.
- Éviter les produits sans prix minimum et les dons à montant libre.
- Après une attaque : passer en revue les transactions, rembourser celles qui sont frauduleuses, désactiver temporairement les cartes enregistrées, prévenir la passerelle.
Les failles WooCommerce et de ses extensions exploitées en 2025-2026
Le cœur de WooCommerce est bien entretenu ; ce sont les extensions qui font l'essentiel du risque. Le rapport « State of WordPress Security in 2026 » de Patchstack compte 11 334 nouvelles vulnérabilités WordPress publiées en 2025 (42 % de plus qu'en 2024) : 91 % dans des extensions, 9 % dans des thèmes, 6 dans le cœur ; 46 % n'avaient pas de correctif à leur publication.
| Faille | Versions touchées | Gravité | Correctif |
|---|---|---|---|
| CVE-2026-3589, WooCommerce : création d'un administrateur par CSRF via le Store API, si un administrateur connecté ouvre un lien piégé | 5.4.0 à 10.5.2 | 7,5 (élevée) | 10.5.3 et correctifs pour 52 branches, déployés automatiquement le 2 mars 2026 |
| CVE-2025-15033, WooCommerce : un client connecté peut lire les commandes de clients invités sur certaines configurations | 8.1 à 10.4.2 | 6,5 (moyenne) | 10.4.3, 22 décembre 2025 |
| CVE-2025-47577, TI WooCommerce Wishlist : envoi de fichier arbitraire sans authentification (exécution de code) si l'intégration WC Fields Factory est active | 2.9.2 et antérieures, plus de 100 000 installations | 10,0 (critique) | 2.10.0, 5 juin 2025 |
| WowShipping Pro : version 1.0.6 piégée à la source, qui installe un faux plugin « WooCommerce Notifications » (vol d'identifiants et de secrets 2FA, porte dérobée, exécution de code) | 1.0.6 | Porte dérobée | 1.0.8 (22 mars 2026) retire l'installateur, pas le malware déjà déposé |
Le dernier cas dit l'essentiel : mettre à jour ne suffit pas quand la faille a déjà servi à installer autre chose (notre analyse de la porte dérobée WowShipping Pro). Pour les bases, voyez notre guide complet de la sécurité WooCommerce.
Nettoyer une boutique WooCommerce sans perdre les commandes
La méthode générale (cœur comparé à une copie propre, thèmes et extensions réinstallés depuis l'original, wp-config.php, .htaccess, uploads et tâches cron inspectés) est dans le guide de nettoyage. Voici ce qu'une boutique y ajoute.
- Sauvegardez l'état compromis, base comprise. Depuis WooCommerce 8.2 (octobre 2023), les nouvelles installations rangent les commandes dans
wc_orders,wc_orders_meta,wc_order_addressesetwc_order_operational_data; les plus anciennes danswp_posts(typeshop_order) etwp_postmeta. Exportez tout :
Cette copie sert de preuve pour la banque, l'assureur et la CNIL.wp db export etat-compromis-$(date +%F).sql tar czf fichiers-compromis-$(date +%F).tar.gz wp-content wp-config.php .htaccess - Coupez les paiements, pas la boutique. Dans WooCommerce > Réglages > Paiements, désactivez les moyens de paiement le temps du nettoyage, ou passez le site en maintenance. Aucune carte ne doit être saisie sur une page dont vous n'êtes pas sûr.
- Nettoyez les fichiers :
wp core verify-checksums,wp plugin verify-checksums --all, réinstallation depuis les sources officielles, suppression des extensions inconnues, recherche de PHP danswp-content/uploadset de fausses images dans les extensions. - Nettoyez la base.
siteurl,home,active_plugins,widget_blocketcrondanswp_options; scripts danswp_posts; puis les tables de la boutique : commandes que vous n'avez pas reçues, produits modifiés, clients créés en rafale, comptes à privilèges.SELECT user_login, user_email, user_registered FROM wp_users ORDER BY user_registered DESC LIMIT 50; wp user list --role=administrator --fields=user_login,user_email,user_registered - Révoquez les clés API REST. Dans WooCommerce > Réglages > Avancé > API REST, chaque clé donne accès en lecture ou en écriture aux commandes, aux clients et aux produits, sans connexion. Révoquez celles que vous ne reconnaissez pas et régénérez celles de vos connecteurs (ERP, place de marché, application) : une clé copiée pendant le piratage reste valable après le nettoyage.
- Supprimez les webhooks inconnus. Dans WooCommerce > Réglages > Avancé > Webhooks, un webhook envoie à une « URL de livraison » chaque commande ou client créé : un moyen discret de recevoir vos commandes chez soi sans plus toucher au site.
- Changez les clés des passerelles. Les clés secrètes Stripe, PayPal ou de votre banque sont dans
wp_optionset ont pu être lues. Régénérez-les depuis le tableau de bord de la passerelle, et vérifiez-y les webhooks déclarés et le compte de reversement. - Réinitialisez les accès : mots de passe des administrateurs et gestionnaires de boutique, mots de passe d'application, clés de sécurité de
wp-config.php, puiswp user session destroy --all. - Testez une commande de bout en bout en navigation privée, journal réseau ouvert, puis réactivez les paiements et surveillez deux semaines.
Deux erreurs coûteuses sur une boutique
Restaurer une sauvegarde d'il y a un mois « pour repartir propre » efface les commandes du mois et ramène souvent la faille, voire l'infection. Effacer les fausses commandes avant de les avoir exportées détruit les preuves que la banque ou l'assureur demanderont. Sauvegardez d'abord, nettoyez ensuite, supprimez en dernier.
Vos obligations après un vol de données de cartes
- Prestataire de paiement et banque. Prévenez-les : ils peuvent surveiller les cartes passées par votre boutique sur la période, bloquer des transactions et vous indiquer la marche à suivre. Attendre les rétrofacturations coûte plus cher.
- RGPD. La CNIL définit une violation de données comme une perte de disponibilité, d'intégrité ou de confidentialité de données personnelles, accidentelle ou illicite. Si elle présente un risque pour les personnes, notifiez-la à la CNIL dans les 72 heures suivant sa constatation, informez les personnes en cas de risque élevé (des numéros de carte associés à des noms et des adresses le sont), et documentez l'incident dans votre registre des violations. Détails dans Après un piratage : vos obligations RGPD et la notification à la CNIL.
- PCI DSS. La norme s'applique à tout commerçant qui stocke, traite ou transmet des données de cartes, même avec une passerelle externe ; votre prestataire peut exiger un questionnaire d'auto-évaluation. Voir notre checklist PCI DSS pour WordPress.
Prévenir un nouveau piratage de WooCommerce
- Mettez à jour WooCommerce et ses extensions dès la sortie des correctifs et laissez les mises à jour automatiques activées : le correctif de mars 2026 a été poussé automatiquement aux boutiques qui les acceptaient.
- Supprimez les extensions inutilisées ; n'installez que depuis WooCommerce.com, WordPress.org ou l'éditeur.
- Ne laissez saisir les cartes que dans les champs hébergés par la passerelle : WooCommerce ne stocke jamais les numéros de carte, gardez-le ainsi.
- Deux facteurs pour tous les administrateurs et gestionnaires de boutique ; rôle « gestionnaire de boutique » plutôt qu'administrateur pour ceux qui traitent les commandes.
- Limitation de débit du Store API, CAPTCHA, pare-feu applicatif, surveillance de l'intégrité des fichiers, sauvegardes quotidiennes hors du serveur.
- Une fois par mois, une commande de test en navigation privée, journal réseau ouvert : un nouveau domaine contacté sur la page de commande, sans nouvelle extension de votre part, justifie une vérification immédiate.
Quand confier le nettoyage à un professionnel
Une boutique fermée perd des ventes à chaque heure, une boutique rouverte avec un skimmer perd ses clients. Si le nettoyage doit être fait aujourd'hui, ou si des clients signalent déjà des débits, notre équipe intervient : diagnostic gratuit sous 12 heures, nettoyage sous 48 heures, prix fixe de 350 € annoncé avant intervention et remboursé si elle échoue, avec la liste des fichiers et entrées touchés. Demande depuis la page réparer mon site WordPress ; l'Assurance & maintenance à 50 € par mois prend ensuite le relais.
Sources
- Sucuri, « Stealthy Credit Card Skimmer Targets WordPress Checkout Pages via Database Injection », 9 janvier 2025 : blog.sucuri.net ; « Credit Card Skimmer and Backdoor on WordPress E-commerce Site », 14 mars 2025 : blog.sucuri.net
- Wordfence, « Rogue WordPress Plugin Conceals Multi-Tiered Credit Card Skimmers in Fake PNG Files », 29 octobre 2025 : wordfence.com
- WooCommerce, « How do I prevent and respond to card testing attacks? » : woocommerce.com ; « Card Testing Attacks and the Store API », 18 décembre 2024 : developer.woocommerce.com ; « WooCommerce 9.6 », 20 janvier 2025 : developer.woocommerce.com
- WooCommerce, « Store API Vulnerability Patched in WooCommerce 5.4+ », 2 mars 2026 : developer.woocommerce.com ; WPScan, fiches CVE-2026-3589 et CVE-2025-15033 : wpscan.com
- Patchstack, « Unpatched Critical Vulnerability in TI WooCommerce Wishlist Plugin », 27 mai 2025 : patchstack.com ; « Supply Chain Compromise: Trojanized Copy of WowShipping Pro », 17 avril 2026 : patchstack.com ; « State of WordPress Security in 2026 » : patchstack.com
- WooCommerce, documentation « REST API » : woocommerce.com ; « Webhooks » : woocommerce.com ; « High-Performance Order Storage » : developer.woocommerce.com ; « PCI-DSS Compliance and WooCommerce » : woocommerce.com
- CNIL, « Notifier une violation de données personnelles » : cnil.fr
Votre site est touché ?
Nous intervenons sur les sites WordPress piratés, nettoyage et sécurisation compris. Décrivez votre situation, nous vous répondons.
À lire aussi

Un administrateur inconnu est apparu dans WordPress : d'où il vient et comment s'en débarrasser
Un administrateur que vous n'avez pas créé est apparu dans WordPress ? D'où vient le compte, trouver les comptes cachés, fermer les accès et nettoyer.
· 8 min de lecture

Analyser les journaux pour dater et comprendre un piratage WordPress
Où trouver les logs, quoi y chercher, les commandes grep, awk et find avec exemples, et comment reconstituer la chronologie d'un piratage WordPress.
· 10 min de lecture

Faux CAPTCHA et ClickFix sur les sites WordPress piratés : détecter et supprimer la fausse vérification
Votre site WordPress affiche un faux CAPTCHA ou une fausse vérification Cloudflare (ClickFix) ? Où se cache l'injection, comment la voir et la supprimer.
· 9 min de lecture

Google Ads suspendu pour « site compromis » : comment lever la suspension
Annonces refusées ou compte Google Ads suspendu pour « site infecté » ? La règle, le nettoyage, le réexamen Search Console, l'appel et les délais.
· 8 min de lecture