Infection WordPress : pourquoi le nettoyage doit être total en une fois
Depuis la fin du printemps 2026, si une chose est certaines, c’est que les infections WordPress étaient extrêmement nombreuses. Tout l’été, des demandes d’interventions pour dépanner ces sites piratés se sont suivies.
Et la réaction chez la plupart des personnes dont le site est touché est la même : Il faut agir. Vite.
La bonne nouvelle, c’est que beaucoup de propriétaires de sites savent qu’il vaut mieux confier le nettoyage de l’infection à quelqu’un site a l’habitude. Qui s’y connaît. Et qui pourra nettoyer toute l’installation sans laisser de fichiers vérolés en place.
Car c’est aussi souvent là, la clé d’un bon nettoyage d’infection WordPress : tout nettoyer en une seule fois. Car le risque fréquent est que s’il reste des fichiers infectés actifs, alors l’infection va se re-déclencher. Et malheureusement, s’étendre à nouveau. Et donc les symptômes avec !
La réinfection post nettoyage partiel
Votre site est infecté. Vous avez reconnu des symptômes fréquents constatés comme des liens vers des sites e-commerces asiatiques, des pages de votre site avec des mentions de casinos dans les résultats de Google.
Bref, vous savez que ça ne sent pas bon et vous commencer à nettoyer. Vous repérez des fichiers bizarres, vous les supprimer. Et vous avez l’impression que tout est ok. Et c’est là que si vous dormez tranquillement la première nuit, vous serez probablement déçu.e.s le lendemain.
En effet, beaucoup de type d’infections WordPress sont faites pour être discrètement cachées dans vos fichiers (et pas que). Mais elles sont aussi hélas souvent faites pour s’étendre à nouveau si tout n’est pas à 100% supprimés en 1 seule et bonne fois.
Prenons un exemple récent traité en ce week-end de la mi-septembre 2026 :
Exemple de site WordPress infecté qui s’est réinfecté
Pour illustrer concrètement ce dont il s’agit, voici les éléments réellement rencontrés lors du nettoyage d’un site WordPress compromis, hébergé chez un hébergeur mutualisé classique, sans multisite ni configuration particulière. Cette liste donne une idée précise de l’ampleur que peut prendre une infection en apparence anodine au départ.
- Un premier symptôme visible : un fichier drop-in wp-content/db.php, provoquant une erreur fatale bloquant tout le site, contenant en réalité une charge binaire obfusquée collée après un en-tête PHP en apparence anodin
- Un second symptôme invisible pour les visiteurs humains mais actif pour les robots d’indexation : du contenu spam en langue étrangère servi de façon conditionnelle selon le user-agent (technique dite de cloaking), détecté via l’aperçu de lien généré automatiquement par un client mail
- Plusieurs webshells (scripts permettant un accès complet et non authentifié au serveur : navigation, upload, suppression, exécution de commandes système) disséminés dans les dossiers socles de WordPress que sont : wp-includes et wp-admin, tous déposés en une seule opération automatisée, avec un horodatage identique à la seconde près sur plusieurs fichiers distincts
- Des noms et emplacements de fichiers choisis pour imiter des composants légitimes du cœur WordPress (des dossiers appelés style-engine, theme-compat, ou encore
sunrise, terme qui désigne aussi un vrai mécanisme de chargement précoce de WordPress, utilisé ici uniquement comme camouflage) - Un scan de sécurité complet (Wordfence) recensant 21 fichiers signalés comme inconnus dans le cœur WordPress rien que lors d’une seule passe
- Une copie supplémentaire d’un des webshells, cachée dans le dossier de cache de vignettes (.tmb) d’un plugin de gestion de fichiers de type elFinder, installé de longue date, non lié à l’administrateur actuel du site, et jamais mis à jour
Et que se passe-t-il si on supprime 98% de tous les fichiers détectés comme suspects mais qu’on laisse les 2% qui restent ?
Une reconstitution automatique et quasi complète des fichiers supprimés survenant pendant la nuit dès lors que le nettoyage n’était pas exhaustif, signe d’un mécanisme de persistance actif (cron système ou wp-cron) distinct des webshells eux-mêmes.
En gros, si on vire 98% des fichiers suspects, mais qu’on laisse ces fameux 2% encore présents, bah l’infection sera là comme si vous n’aviez rien fait le lendemain. Dommage non ?
Pour la petite histoire, ce site était infecté par un « Japonese Keyword Hack ». En gros, ça sert à afficher des pages et résultats de votre site dans Google, en japonais. Et ces liens guideront dans le pire des cas, vers des pages e-commerce japonaises. Ceci est documenté notamment dans : https://www.malcare.com/blog/japanese-keyword-hack/
Ce qui implique que même après le nettoyage du site intégralement, il y aura un vrai travail de nettoyage SEO aussi, de sorte que les liens vérolés indexés ne soient plus indexés. Et que les signaux envoyés par votre site à Google et consort, soient à nouveau propres, fiables et donc positifs.
Preuve qu’une infection peut avoir de gros mauvais effets sur le site, mais aussi sur son e-réputation technique.
Pourquoi un nettoyage « presque complet » ne suffit jamais
Une compromission WordPress ne se limite quasiment jamais à un seul fichier malveillant isolé. Les campagnes d’attaque automatisées déposent généralement plusieurs charges à la fois, dans des emplacements différents, avec des noms choisis pour ne déclencher aucune alerte visuelle chez un administrateur qui parcourt rapidement l’arborescence.
Cette dispersion volontaire a un objectif précis : garantir que même si une partie des fichiers est repérée et supprimée, il en reste suffisamment pour reconstituer l’accès. C’est là que se trouve le piège du nettoyage partiel. Supprimer 98% des fichiers malveillants ne réduit pas le risque de 90 %, ça laisse simplement 2% de portes dérobées pleinement fonctionnelles, ce qui suffit à tout recharger.

Les mécanismes de persistance, la vraie raison des réinfections
Au-delà des webshells eux-mêmes, une compromission installe souvent un ou plusieurs mécanismes de persistance, conçus spécifiquement pour survivre à un nettoyage partiel.
Les mu-plugins (must-use plugins)
Ilss sont une cible particulièrement appréciée. Ce sont des extensions que WordPress charge automatiquement sans qu’elles apparaissent dans la liste des extensions activables ou désactivables depuis le tableau de bord. Un rapport de Sucuri, société spécialisée en sécurité WordPress, documente ce type d’infection en détail : un fichier loader placé en mu-plugin va chercher discrètement une charge à distance, parfois encodée pour échapper aux scanners, la stocke en base de données, puis recrée en tâche de fond ce qui a été supprimé côté fichiers.
Les tâches planifiées,
Qu’il s’agisse du wp-cron interne à WordPress ou d’un cron système configuré directement chez l’hébergeur, sont un autre vecteur de persistance très documenté. Une tâche cron malveillante peut redéposer les fichiers supprimés à intervalle régulier, souvent programmée pour s’exécuter la nuit, précisément pour limiter les chances d’être surprise en flagrant délit.
Les comptes administrateurs créés frauduleusement
Les mots de passe d’application (application passwords) actifs, ou un accès XML-RPC laissé ouvert constituent des vecteurs de reprise en main qui n’ont rien à voir avec les fichiers eux-mêmes. Changer le mot de passe admin principal ne sert à rien si un second compte administrateur, créé par l’attaquant sous un nom discret, reste actif.
Un composant historiquement vulnérable,
Ce type de composant resté installé sans qu’on en ait toujours conscience, peut constituer un point d’entrée réutilisable. Les extensions de type gestionnaire de fichiers (exemple connu de WordPress Manager Files) embarquant la librairie elFinder ont par exemple fait l’objet d’une faille critique largement exploitée (CVE-2020-25213), permettant l’upload de fichiers PHP arbitraires en contournant les restrictions d’extension.
Le coût réel d’un cycle de réinfection
Les conséquences d’un nettoyage incomplet sont non négligeables. D’abord, les symptômes du piratage reviennent, et ça pour l’image du site, de votre business, votre activité, ça craint. Ensuite, le temps passé à nettoyer ce qui est revenu est perdu. Pas si vous apprenez de ce nettoyage incomplet, évidemment. Mais c’est du temps que vous auriez pu passer à communiquer sur votre business, plutôt qu’à faire un job de dépannage que d’autres auraient fait pour vous, avez l’expérience et l’expertise.
Bref, un nettoyage incomplet d’infection WP c’est notamment :
- Temps technique : chaque cycle de réinfection implique de reprendre l’intégralité du diagnostic, souvent en repartant de zéro parce que les repères précédents (quels fichiers étaient sains, quelle configuration fonctionnait) ont été perdus entre-temps
- Énergie et charge mentale : un professionnel qui pense avoir résolu un incident, puis découvre qu’il doit tout recommencer, perd confiance dans son propre diagnostic, ce qui ralentit encore la suite du travail, particulièrement lorsque plusieurs sites sont concernés simultanément
- Référencement et visibilité : un site qui reste compromis, même partiellement, continue d’exposer ses visiteurs à un risque (contenu de phishing, redirections malveillantes, spam injecté visible uniquement par les moteurs de recherche). Google et les autres moteurs peuvent dégrader significativement le classement d’un site en cas de compromission détectée, avec un impact qui peut prendre des semaines à se résorber même après un nettoyage effectif
- Image et confiance client : apprendre que son site a été « nettoyé » une première fois puis reste compromis entame durablement la confiance envers son prestataire technique, indépendamment de la qualité réelle du travail fourni
Si je devais résumer tout ça
Un nettoyage WordPress post-piratage n’est complet que lorsque la cause de l’intrusion est identifiée et neutralisée, pas seulement lorsque les fichiers visibles ont disparu.
Un site qui semble propre pendant quelques heures ou quelques jours avant de retomber dans le même état n’a jamais vraiment été nettoyé, il a simplement connu une pause entre deux cycles de compromission.
Face à ce risque, une intervention menée en une seule fois, sans intervalle laissé à l’attaquant ou à un mécanisme de persistance pour reprendre la main, reste toujours plus rentable, en temps, en énergie et en crédibilité professionnelle, qu’une succession de nettoyages partiels qui ne font que repousser le problème.
Bref, si vous pensez que votre site est infecté, que votre WordPress ne se comporte pas comme d’habitude, demandez a minima un audit, dans le doute. Il est souvent gratuit et vous permet de vous situer vis à vis d’une potentielle intervention de dépannage.
Sachez qu’il est aussi souvent arrivé cet été que je sois contactée pour des sites a priori piratés, mais qui finalement ne l’étaient pas ! Comme quoi, il vaut mieux prévenir que guérir. Mais quand il est question de guérir, il faut le faire une fois bien. Sinon, ça reviendra 😉




