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
| Type | Ce qu'il fait | Où le chercher |
|---|---|---|
| Webshell | Un fichier PHP qui donne à l'attaquant un accès au serveur depuis son navigateur : lire, écrire, envoyer des fichiers | Dossier des médias, fichiers aux noms anodins (cache.php, wp-update.php) |
| Porte dérobée | Quelques 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 spam | Des 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 conditionnelle | Les 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 paiement | Un script qui copie les données saisies au paiement sur une boutique | Pages de commande WooCommerce, scripts du thème, base de données |
| Kit d'hameçonnage | De fausses pages de connexion (banque, messagerie) hébergées sur votre site | Sous-dossiers récents à la racine ou dans les médias |
| Mineur de cryptomonnaie | Le processeur du serveur, ou des visiteurs, travaille pour l'attaquant | Processus 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.frdans 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.
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-checksumsChercher 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.
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.
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 ? ».
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.