Pharma hack : supprimer le spam médicaments

Viagra, Cialis et pharmacies en ligne indexés sous votre nom dans Google, invisibles dans votre admin ? C'est le pharma hack. Voici où il se cache et comment le retirer.

Par WP-Detox 8 min de lecture

Vous cherchez votre site dans Google et vous tombez sur des titres “Buy Viagra Online”, “Cialis sans ordonnance” ou des noms de pharmacies en ligne, affichés sous votre domaine. Dans votre tableau de bord WordPress, rien : aucune de ces pages n’existe. C’est le pharma hack, une injection de spam SEO qui détourne votre référencement pour vendre des médicaments. La raison pour laquelle vous ne voyez rien côté admin n’est pas un hasard : le contenu est servi en priorité à Google, pas à vous.

ce qu’est le pharma hack

Le pharma hack appartient à la même famille que le spam casino : une injection de spam SEO. Un attaquant se sert de l’autorité de votre domaine pour faire remonter dans Google des pages qu’il n’a pas le droit de référencer ailleurs. La différence tient à la charge. Ici, ce sont des mots-clés de pharmacie : Viagra, Cialis, Levitra, génériques, pilules amaigrissantes, pharmacies sans ordonnance. Le moteur d’infection est le même, seul le contenu poussé change.

Si vous trouvez plutôt des titres de casinos, de paris sportifs ou de slots, vous êtes sur la même attaque avec une charge différente. Le diagnostic et le nettoyage suivent la même logique, mais les mots-clés à chercher diffèrent : voir la variante casino et paris du même piratage.

L’objectif de l’attaquant est purement commercial. Vendre des médicaments en ligne sans ordonnance est interdit, donc impossible à référencer normalement. Votre site, lui, a déjà une réputation auprès de Google. Le pirate l’emprunte. Tant que ses pilules restent indexées sous votre nom, il gagne de l’argent, et il a tout intérêt à réinjecter le spam dès que vous l’effacez.

pourquoi c’est invisible dans votre admin

C’est le piège du pharma hack : votre site a l’air normal quand vous le visitez, mais Google voit un site de pharmacie. Le code injecté fait du cloaking, c’est-à-dire qu’il sert un contenu différent selon qui demande la page.

Concrètement, le code malveillant regarde le User-Agent et l’adresse IP du visiteur. Si la requête vient de Googlebot, il renvoie la page bourrée de mots-clés pharmacie. Si elle vient de vous, administrateur connecté, ou d’un visiteur classique, il renvoie votre vraie page. Le spam existe en permanence, mais il ne s’affiche que pour les robots d’indexation.

L’injection est souvent conditionnelle et ne touche que certains éléments :

  • les balises <title> et les meta description, réécrites pour Googlebot avec des termes de pharmacie ;
  • des blocs de liens cachés ajoutés en bas de page, parfois en display:none ou hors de l’écran ;
  • des pages entières générées à la volée à partir d’URL piégées, qui n’existent nulle part dans votre interface.

Résultat : votre back-office est propre en apparence, votre page d’accueil aussi quand vous la regardez, et pourtant Google indexe des centaines de pages de pilules. Se fier à ce que montre WordPress donne une fausse impression de sécurité.

où le code se cache

Le pharma hack se loge à plusieurs endroits à la fois, et c’est ce qui le rend coriace. Les emplacements courants :

  • La table wp_options. Des options sérialisées contenant du code ou des listes de mots-clés pharmacie, parfois sous des noms anodins. C’est une cachette classique car peu de gens vont fouiller cette table.
  • Le header.php ou le footer.php du thème actif. Quelques lignes de PHP insérées tout en haut ou tout en bas du fichier, qui injectent le spam dans chaque page servie à Googlebot.
  • Le .htaccess. Des règles de réécriture qui redirigent les robots vers le contenu pharmacie ou qui activent l’injection selon le User-Agent.
  • Des fichiers du cœur. Sur les infections profondes, du code est ajouté dans wp-load.php, index.php, wp-blog-header.php ou des fichiers de wp-includes/. C’est le cas le plus grave car il survit à un simple nettoyage du thème.
  • Des entrées en base. Faux articles ou pages dans wp_posts, avec un statut ou un auteur manipulé pour ne pas remonter dans la liste standard.

Tant qu’un seul de ces points reste en place, le spam se régénère. Le code visible n’est que la partie émergée : il y a presque toujours une backdoor qui permet à l’attaquant de tout réécrire à distance.

comment le détecter

Comme l’admin ment, mesurez depuis l’extérieur, à la place de Google.

  • Recherche site:. Tapez site:votre-domaine.fr viagra ou site:votre-domaine.fr cialis dans Google. Si des résultats sortent, l’infection est confirmée et vous voyez l’ampleur. Essayez aussi pharmacy, pills, ordonnance.
  • L’inspection d’URL de la Search Console. Collez une URL suspecte dans l’outil d’inspection, puis affichez la version explorée par Google (“HTML rendu”). Vous y verrez le contenu réellement servi à Googlebot, cloaking inclus, là où votre navigateur ne montrerait rien.
  • Simuler Googlebot. Avec une extension de navigateur qui change le User-Agent (ou les outils développeur, onglet Réseau, condition “User-Agent” sur Googlebot), rechargez une page et comparez le code source. Si le <title> ou le bas de page se remplit de pharmacie quand vous vous faites passer pour Google, le cloaking est démasqué.
# Test rapide en ligne de commande
curl -A "Googlebot" https://votre-domaine.fr/ | grep -iE "viagra|cialis|pharmacy|pills"

Si cette commande renvoie des mots-clés pharmacie alors qu’une visite normale n’en montre aucun, vous tenez la preuve du cloaking.

  • Les rapports de la Search Console. Le rapport Indexation montre un pic anormal de pages indexées. La section Sécurité et actions manuelles signale souvent “Contenu piraté” ou “Pages frauduleuses”.

comment nettoyer

Le principe : retirer le code injecté partout, couper la porte d’entrée, puis remettre Google dans le coup.

Sauvegardez d’abord les fichiers et la base. Toute suppression manuelle peut casser le site, et une sauvegarde vous laisse une marche arrière.

  1. Repérer et retirer le code injecté. Inspectez header.php, footer.php et functions.php du thème actif : supprimez tout bloc PHP que vous n’avez pas écrit, surtout du code encodé en base64, eval() ou gzinflate(). Comparez vos fichiers de thème avec une version saine si vous en avez une.
  2. Nettoyer le .htaccess. Retirez les règles de réécriture conditionnelles liées au User-Agent ou aux moteurs. Gardez uniquement le bloc WordPress standard.
  3. Nettoyer la base. Dans wp_options, cherchez les options aux contenus suspects (mots-clés pharmacie, code sérialisé). Dans wp_posts, listez puis supprimez les faux articles. Travaillez toujours avec une requête de lecture d’abord :
SELECT ID, post_title, post_status, post_type
FROM wp_posts
WHERE post_title LIKE '%viagra%'
   OR post_title LIKE '%cialis%'
   OR post_content LIKE '%pharmacy%';

Vérifiez que les résultats sont bien du spam avant de supprimer, et adaptez le préfixe wp_ si le vôtre est différent (par exemple wp_a1b2_).

  1. Supprimer la backdoor. Cherchez les fichiers PHP récents ou aux noms douteux à la racine, dans wp-content/uploads/ (où il n’y a jamais de PHP légitime) et dans wp-content/. Sans ça, le spam revient en quelques jours.
  2. Réinstaller le cœur si des fichiers système sont touchés. Si l’injection a atteint wp-load.php, index.php ou wp-includes/, ne corrigez pas ligne par ligne : remplacez tout le cœur par une version officielle propre, à l’identique de votre numéro de version.
  3. Changer les mots de passe admin, base de données et FTP/SFTP une fois le code propre, sinon l’attaquant se reconnecte par où il est entré.

demander la réindexation

Une fois le site nettoyé, le spam pharmacie reste dans l’index de Google quelques jours à quelques semaines. Pour accélérer le retour à la normale :

  • vérifiez que les URL pirates renvoient bien une erreur 404 ou 410 ;
  • dans la Search Console, utilisez l’outil de suppression d’URL pour masquer vite les pages les plus visibles ;
  • si Google avait posé une alerte de sécurité, corrigez tout puis demandez un réexamen.

Si votre site affiche déjà l’écran rouge “Ce site risque d’endommager votre ordinateur”, suivez la procédure dédiée pour enlever l’avertissement de Google.

FAQ

Pourquoi je vois des pubs de médicaments dans Google mais pas sur mon site ? À cause du cloaking. Le code injecté sert le contenu pharmacie uniquement à Googlebot et vous montre votre vraie page. Vérifiez avec l’outil d’inspection d’URL de la Search Console ou en simulant le User-Agent Googlebot.

Le pharma hack et le spam casino, c’est la même chose ? C’est la même attaque, l’injection de spam SEO, avec une charge différente : médicaments d’un côté, jeux d’argent de l’autre. La méthode de nettoyage est identique, seuls les mots-clés à chercher changent.

Pourquoi le spam revient après que je l’ai supprimé ? Parce que la backdoor est toujours là. Supprimer les pages sans couper la porte d’entrée, c’est éponger une fuite sans fermer le robinet. Il faut purger tous les fichiers infectés et changer les mots de passe.


Si vous préférez ne pas manipuler vous-même phpMyAdmin, le .htaccess et les fichiers du cœur, WP-Detox s’en charge. Le scan gratuit mesure l’ampleur réelle de l’infection, cloaking compris, puis le nettoyage prend environ 30 minutes : retrait du code injecté, nettoyage de la base, suppression de la backdoor et réinstallation du cœur si besoin, avec une sauvegarde complète avant toute intervention. Tout compris à 149 €, remboursé si on échoue à nettoyer votre site. Pour la marche à suivre globale, voir aussi le guide complet quand WordPress est piraté.

À lire ensuite