DétectionMalwarePublié le · mis à jour le · 12 min

Malware WordPress : comment détecter et supprimer une infection

Un malware WordPress est du code ajouté à votre site à votre insu. Il cherche rarement à le casser : il veut s'en servir, discrètement et le plus longtemps possible. Voici d'où viennent les infections, les formes qu'elles prennent, et ce que chaque méthode de détection voit ou ne voit pas.

Sources : rapport State of WordPress Security in 2026 de Patchstack, documentation de WP-CLI et FAQ de WordPress.org sur les sites piratés (en anglais).

L'essentiel en 30 secondes

Porte d'entrée n°1
Les extensions : 91 % des failles WordPress publiées en 2025, contre 9 % pour les thèmes et 6 pour le cœur (Patchstack)
Vitesse
Pour les failles les plus exploitées, 5 heures en médiane entre la publication et la première attaque
Ce que veut l'attaquant
Rarement casser le site : plutôt s'en servir discrètement (spam, redirections, vol de données)
Détection
Aucune méthode ne voit tout : comparer aux fichiers officiels, chercher des signatures, lire la base, vérifier les versions
Suppression
Remplacer par les versions officielles, jamais « désinfecter » un fichier à la main

D'où viennent les infections

Patchstack, qui recense les failles de l'écosystème WordPress, en a compté 11 334 nouvelles en 2025, soit 42 % de plus qu'en 2024. 91 % concernent des extensions et 9 % des thèmes. Le cœur de WordPress n'en compte que 6, toutes jugées peu prioritaires. Le rapport ajoute que 46 % des failles n'avaient pas de correctif au moment de leur publication, et que les plus exploitées sont attaquées en 5 heures, en médiane, après leur publication.

Concrètement, l'entrée la plus fréquente est une extension ou un thème non à jour. Viennent ensuite les versions piratées (« nulled »), qui arrivent souvent déjà infectées, et les mots de passe volés ou devinés. Notre guide sur les extensions vulnérables détaille ces chemins, et la veille suit les failles du moment.

Les 7 formes les plus courantes

TypeCe qu'il faitOù le chercher
WebshellUn fichier PHP qui donne à l'attaquant un accès au serveur depuis son navigateur : lire, écrire, envoyer des fichiersDossier des médias, fichiers aux noms anodins (cache.php, wp-update.php)
Porte dérobéeQuelques lignes cachées dans un fichier légitime pour revenir après le nettoyage, souvent obfusquées (eval, base64)functions.php du thème, extensions, wp-config.php, mu-plugins
Injection de spamDes liens ou des pages ajoutés pour le référencement d'autres sites (pharmacie, jeux, contrefaçon)Contenus en base, pages générées, sitemap modifié
Redirection conditionnelleLes visiteurs venus de Google ou sur mobile sont envoyés ailleurs ; vous, connecté, ne voyez rien.htaccess, JavaScript injecté, options siteurl et home
Skimmer de paiementUn script qui copie les données saisies au paiement sur une boutiquePages de commande WooCommerce, scripts du thème, base de données
Kit d'hameçonnageDe fausses pages de connexion (banque, messagerie) hébergées sur votre siteSous-dossiers récents à la racine ou dans les médias
Mineur de cryptomonnaieLe processeur du serveur, ou des visiteurs, travaille pour l'attaquantProcessus serveur, script injecté dans les pages

Une même infection combine souvent plusieurs formes : un webshell sert à déposer du spam, et une porte dérobée le réinstalle après chaque nettoyage. Le détail des deux premières est dans webshells et portes dérobées, celui du spam dans l'injection SEO.

Les symptômes qui doivent alerter

  • Un avertissement de Google ou du navigateur, ou une alerte de l'hébergeur.
  • Des pages en langue étrangère ou des produits que vous ne vendez pas quand vous cherchez site:votre-domaine.fr dans Google.
  • Des visiteurs redirigés ailleurs, alors que vous, connecté, ne voyez rien d'anormal.
  • Un administrateur que vous n'avez pas créé, ou une extension inconnue.
  • Des e-mails envoyés en masse depuis le serveur, ou vos propres e-mails classés en indésirables.
  • Un site soudain lent, ou une consommation de ressources anormale signalée par l'hébergeur.

Aucun de ces signes ne dit quel fichier est en cause. Notre page site WordPress piraté indique quoi faire dans la première heure.

Les méthodes de détection, et ce qu'elles ratent

Une détection fiable croise plusieurs méthodes, car chacune a un angle mort. Toutes peuvent être appliquées sans exécuter le code du site : les fichiers sont lus comme du texte.

1

Comparer le cœur aux fichiers officiels

WordPress.org publie l'empreinte de chaque fichier du cœur, pour chaque version. Un fichier modifié, même d'une seule ligne, ressort avec certitude, et un fichier PHP ajouté au milieu du cœur aussi. Limite : cela ne couvre que le cœur et les extensions gratuites du dépôt officiel. Ni le dossier des médias, ni les extensions payantes, ni votre thème personnalisé.

wp core verify-checksums
2

Chercher des signatures de malware

Des règles YARA décrivent ce qui caractérise un malware connu : fonctions d'exécution, chaînes d'obfuscation, motifs propres à une campagne. Chaque fichier est lu comme du texte et confronté aux règles. Limite : un code chiffré ou inédit peut passer. Il faut donc publier ses taux mesurés, pas une promesse de détection totale.

3

Lire la base de données

Une partie des infections n'est dans aucun fichier : administrateur ajouté, script dans un widget, option siteurl modifiée, tâche planifiée qui réinstalle la porte dérobée. Seule une lecture de la base les révèle.

4

Vérifier les failles connues des versions

Comparer les versions du cœur, des extensions et du thème actifs à une base de failles publiques. Ce n'est pas une preuve d'infection, mais c'est souvent la réponse à la question « par où sont-ils entrés ? ».

5

Regarder le comportement

Journaux d'accès du serveur, envois d'e-mails, consommation du processeur, pages vues par Google dans la Search Console. Ces signaux ne disent pas quel fichier est en cause, mais ils confirment une infection et la datent.

À titre d'exemple, notre scan combine les quatre premières méthodes, avec 123 règles YARA. Sur nos corpus de test, il détecte 95,8 % des webshells PHP réels, mais seulement 49 % du malware chiffré : c'est son angle mort, et notre méthodologie le publie avec les autres limites.

Quand un fichier signalé n'est pas une infection

Un bon outil de détection signale aussi des choses saines, et c'est normal. Certaines extensions légitimes utilisent les mêmes fonctions qu'un malware : un gestionnaire de fichiers sait lire et écrire sur le serveur, une extension de cache réécrit le .htaccess, une extension de sauvegarde compresse et encode des données. Certains hébergeurs modifient aussi des fichiers du cœur, comme wp-config-sample.php, qui ne sont jamais exécutés.

Ce qui compte, c'est la façon dont l'outil classe ce qu'il trouve. Un signal isolé ne devrait jamais être présenté comme une infection : un fichier ajouté dans le dossier des médias n'a pas le même poids qu'une signature de webshell connue. Avant de supprimer quoi que ce soit sur la foi d'une alerte, vérifiez d'où vient le fichier (extension, date, auteur) et comparez-le à la version officielle. Notre rapport d'exemple montre un fichier du cœur modifié, classé informatif plutôt que menaçant, et explique pourquoi.

Scanner depuis WordPress ou depuis l'extérieur

Une extension de sécurité s'exécute à l'intérieur du site qu'elle surveille. Elle peut bloquer des attaques en direct, ce qu'un scanner externe ne fait pas. Mais si l'attaquant contrôle déjà WordPress, il peut la désactiver ou fausser ce qu'elle voit. Un scanner externe analyse une copie des fichiers sur d'autres serveurs : le malware ne peut pas interférer avec l'analyse. Les deux approches se complètent. Le comparatif complet est dans scanner externe ou extension de sécurité.

Supprimer l'infection

La règle est de remplacer, pas de réparer : le cœur, les extensions et le thème sont réinstallés depuis leurs sources officielles. Les fichiers propres à votre site sont inspectés un par un, et les fichiers suspects mis en quarantaine plutôt que supprimés, pour pouvoir revenir en arrière. Sans correction de la porte d'entrée et sans changement de tous les mots de passe, l'infection revient. Toutes les étapes sont dans comment nettoyer un WordPress hacké.

Savoir si votre site est infecté, et où

Le scan unique analyse les fichiers et une partie de la base de votre WordPress, et classe chaque élément en menace confirmée, à vérifier ou informatif. Si une menace est confirmée, le Nettoyage accompagné (249 €) remet le site en état pour vous : sauvegarde vérifiée, quarantaine réversible et remplacement par les versions officielles.

Paiement unique, sans abonnement. Il faut créer un compte et installer sur le site notre extension de connexion, qui fonctionne en lecture seule. Le scan ne vérifie ni le serveur ni les secrets : ces étapes restent à faire.