Mes visiteurs voient une fausse page « prouvez que vous êtes humain »
Vos clients décrivent un écran de vérification qui leur demande de coller une commande dans leur ordinateur, alors que vous ne voyez rien d’anormal depuis votre navigateur : l’infection choisit ses victimes, et vous n’en faites pas partie.
Vous ne voyez rien, et pourtant ils ont raison
Un client vous écrit qu’avant d’arriver sur votre boutique, il a vu une page de vérification lui annonçant un trafic web inhabituel, avec un message du type « Unusual Web Traffic Detected », et lui demandant d’effectuer une manipulation sur son propre ordinateur pour prouver qu’il n’est pas un robot. Vous ouvrez votre site : rien. Vous rechargez : rien. Vous testez sur deux autres pages : toujours rien. La tentation est grande de conclure que le client s’est trompé de site, ou qu’il a une extension de navigateur douteuse.
C’est presque toujours faux. Le code est bien sur votre serveur. Ce qui change, c’est qu’il ne se déclenche pas pour tout le monde. Un code injecté dans un thème peut décider, à chaque affichage, de servir la page normale ou la page piégée, en fonction de ce qu’il apprend du visiteur : son navigateur, son système, la provenance de sa visite, le fait qu’il soit connecté ou non à l’administration. Je ne peux pas vous dire quels critères précis retient telle ou telle variante — cela change d’une campagne à l’autre — mais le principe est constant : le propriétaire du site, qui arrive toujours par le même chemin, avec la même session et le même navigateur, est le visiteur le moins susceptible de voir quoi que ce soit.
C’est aussi ce qui rend ces infections durables. Tant que personne ne reproduit les conditions d’un vrai visiteur, le site paraît sain depuis le back-office, et le problème reste dans les messages du service client.
Ce que vos clients décrivent
- Un écran de vérification anti-robot apparaît avant votre page, alors que vous n’avez jamais mis ce dispositif en place.
- Le message parle d’un trafic web inhabituel et affiche un texte en anglais que vous ne reconnaissez pas.
- On demande au visiteur d’effectuer une manipulation sur son propre ordinateur pour « prouver qu’il est humain ».
- Le phénomène est intermittent : sur le même lien, un client le voit et un autre non.
- Certains visiteurs sont redirigés vers une page extérieure qui propose une mise à jour de navigateur.
- Vous, depuis votre navigateur habituel, ne constatez strictement rien.
Où se cache le code, et pourquoi tous les thèmes sont concernés
Sucuri a documenté en mai 2025 une campagne exactement conforme à ce que vos clients décrivent. Le code malveillant est injecté dans le fichier header.php de tous les thèmes installés, et non du seul thème actif. Il renvoie vers un fichier verification.html déposé sur le serveur, qui contient la fausse page de vérification. Le visiteur y lit qu’un trafic inhabituel a été détecté et qu’il doit exécuter une manipulation sur sa machine. S’il la suit, il installe un logiciel malveillant sur son ordinateur. Il s’agit d’une évolution d’une campagne déjà observée par Sucuri en mars 2025.
Le point important à comprendre est celui-là : dans ce schéma, la victime finale n’est pas votre serveur. Votre site n’est pas volé, il n’est pas chiffré, ses données ne partent pas forcément. Il sert de point de distribution. C’est ce qui explique le décalage entre ce que vous mesurez — un site qui répond normalement, des commandes qui passent — et ce que vos clients vivent.
Le détail des « tous les thèmes installés » n’est pas une précision de curiosité. Un thème que vous n’utilisez pas, laissé en place après un essai ou livré par défaut avec l’installation, reste un fichier PHP présent sur le serveur. Le nettoyer uniquement sur le thème actif laisse le reste du code en place, prêt à être rappelé si le thème change, et laisse surtout croire que le problème est réglé. Je pars donc toujours du principe qu’il faut inspecter l’intégralité du dossier des thèmes.
Il faut aussi vérifier une deuxième cachette. Le dossier wp-content/mu-plugins/ contient les extensions dites « must-use » : elles sont chargées automatiquement à chaque affichage de page, sans activation, et n’apparaissent pas dans la liste des extensions du tableau de bord. Un site audité uniquement depuis l’interface d’administration a donc un angle mort complet à cet endroit.
Reproduire, chercher, refermer
-
Cessez d’être un visiteur connu
Déconnectez-vous du back-office, ouvrez une fenêtre de navigation privée, changez de navigateur, changez d’appareil, passez par une connexion mobile plutôt que par le réseau du bureau, et arrivez sur le site depuis un lien externe plutôt qu’en tapant l’adresse. Chaque paramètre que vous modifiez vous rapproche des conditions d’un vrai visiteur. Demandez aussi à votre client quel navigateur et quel système il utilisait : c’est l’information la plus utile qu’il puisse vous donner.
-
Comparez les fichiers d’en-tête de tous les thèmes
Ouvrez le fichier header.php de chaque thème présent sur le serveur, pas seulement du thème actif, et comparez-le à une copie propre de la même version du thème. Un fichier modifié récemment, alors que vous n’avez rien changé, suffit à orienter la recherche.
-
Cherchez les fichiers qui n’ont rien à faire là
Un fichier verification.html, ou tout autre fichier HTML isolé dans un dossier de thème ou à la racine, mérite d’être ouvert et daté. Les thèmes n’ont normalement aucune raison d’héberger des pages HTML autonomes.
-
Ouvrez le dossier des extensions à chargement automatique
Listez le contenu de wp-content/mu-plugins/ en accès fichier, pas depuis le tableau de bord. Sucuri y a observé trois fichiers : redirect.php, qui envoie les visiteurs vers une page extérieure se faisant passer pour une mise à jour de navigateur ; index.php, un webshell donnant un accès distant au serveur ; et custom-js-loader.php, qui remplace le contenu du site par des liens indésirables et manipule les images.
-
Datez les modifications avant de nettoyer
Notez les dates de modification des fichiers touchés avant de les restaurer. C’est ce qui vous permettra de chercher, dans les journaux du serveur, ce qui s’est passé ce jour-là et par où l’accès a été obtenu. Nettoyer d’abord et enquêter ensuite fait disparaître la moitié des indices.
-
Refermez la porte, pas seulement la fenêtre
Restaurez les fichiers de thème depuis une source saine, supprimez les fichiers ajoutés, puis passez à la cause : tout mettre à jour, revoir les comptes administrateurs et supprimer ceux qui ne servent plus, imposer des mots de passe uniques, activer la double authentification, mettre en place un contrôle d’intégrité des fichiers et un pare-feu applicatif.
# Fichiers d'en-tete de theme modifies dans les 30 derniers jours
find wp-content/themes -name 'header.php' -mtime -30 -ls
# Fichiers HTML isoles deposes dans les dossiers de theme
find wp-content/themes -maxdepth 3 -name '*.html' -ls
# Contenu du dossier des extensions a chargement automatique
ls -la wp-content/mu-plugins/
Pour aller plus loin
-
Mon site redirige vers un site inconnu
La variante où le visiteur n’a même pas d’écran intermédiaire et part directement ailleurs.
-
Mon antivirus ou mon navigateur bloque mon site
Ce qui arrive ensuite si l’injection reste en place assez longtemps pour être détectée.
-
Vérifier si mon site est compromis
Les contrôles à faire quand rien n’est visible depuis votre propre navigateur.
-
Nettoyer un site infecté
L’ordre des opérations une fois les fichiers modifiés identifiés.
Décrivez votre besoin en 1 minute
Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.