Technique de spamco : explication et script PHP

Le spamco ou spam de commentaire est vieux comme le monde. Il est existe du propre, du sale, du manuel et de l’automatique. Sylvain Fouillaud a d’ailleurs écrit un article sur différents exemples de spamco qu’il a reçu sur son site : le pro, le novice, le futé, etc. C’est un retour enrichissant.

Le terme spamco n’est pas forcément à prendre négativement. Une personne qui va systématiquement mettre un commentaire sur les articles des blogs de son secteur de façon manuelle, réfléchie et pertinente sera bien pour lui (backlink dans la thématique) et pour l’auteur de l’article (commentaire pertinent). Attention toutefois à diversifier les sources de liens, je ferme la parenthèse.

Pour ma part, je réponds systématiquement de façon manuelle. Le taux d’acceptation est supérieur et je maîtrise bien chaque lien. Seulement voila, tout le monde n’a pas le temps de commenter pour ses sites ou les sites de ses clients. Vient alors la solution automatique.

Un autre article de Sylvain Richard (encore un !) sur Google+ cette fois m’a fait tic et je me suis dit qu’il était temps que je regarde ça de plus près… bien que ça soit sale. Vous l’avez compris, cette technique va donc consister à publier un même commentaire qui a été posté manuellement par une autre personne.

 

spamco

 

Explication de la technique de spamco

Il y a plusieurs approches mais je vais me cantonner à WordPress pour cette fois.

La première approche consiste à parser le flux des commentaires des articles de WordPress les capturer. Il suffit pour cela d’ajouter

/feed

 

à la fin des urls des articles. Par exemple :

https://www.lije-creative.com/google-adwords-academie/feed/

 

Le flux est parfois modifié ou même supprimé. Ce n’est pas cette technique que je vais utiliser.

La deuxième solution consiste à s’attaquer directement à la page de l’article en récupérant tous les commentaires. Le premier problème se pose ici. Le template des commentaires peut être modifié même si la majorité des blogueurs utilise le template de base. J’ai donc intégré 5 façons différentes de récupérer ses commentaires d’après les différents template que j’ai pu trouver sur les sites que j’ai parcouru :

$comment_body = $xpath->query(".//*[contains(@class, 'comment-body')]");
if( $comment_body->length < 5 ) { $comment_body = $xpath->query(".//*[contains(@class, 'comment-entry')]"); }
if( $comment_body->length < 5 ) { $comment_body = $xpath->query(".//*[contains(@class, 'commententry')]"); }
if( $comment_body->length < 5 ) { $comment_body = $xpath->query(".//*[contains(@class, 'comment-content')]"); }
if( $comment_body->length < 5 ) { $comment_body = $xpath->query(".//*[contains(@class, 'comment-text')]"); }
[...]
if( $comment_body->length < 5 ) { echo "<br />[$i] Can't find comments: " . $url; $i++; continue; }

 

template commentaire

 

Vous notez que je vérifie bien sur j’ai un nombre supérieur à 5 commentaires car sinon, la publication d’un commentaire déjà existant sera trop flagrante. La dernière ligne permet de sortir de ma boucle qui parcours toutes les urls d’un fichier texte. A l’aide de xpath, je cherche le div qui contient une certaine classe (comment-body,…). C’est ce div qui contient les commentaires.

Il y a aussi des petits malins qui changent l’url de destination du formulaire d’envoi des commentaires. Le script va donc le récupérer :

$action = $xpath->query(".//*[@id='respond']//form/@action");
try {
    $form_action = $action->item(0)->nodeValue;
} catch (Exception $e) {
    echo "<br />[$i] Something wrong " . $url;
    $i++;
    continue;
}

 

wp form url

 

La solution ne fonctionne pas avec le module Jetpack car ce dernier utilise une frame. Il n’y a plus qu’à prendre un commentaire dans le lot et à le republier avec toutes les informations de son propre site.

Attention ici aussi, akismet ou d’autre module de sécurité ajoute des champs cachés (cela me faut penser à un article d’Aymeric sur la façon de faire du spamco sur des champs cachés, mon script le permet aussi), il va donc falloir récupérer tout ça pour les envoyer proprement :

$inputs = $xpath->query(".//*[@id='respond']//form//input");
 foreach($inputs as $input) {
    $postfields[$input->getAttribute('name')] = $input->getAttribute('value');
 }
$postfields["author"] = $post_author;
$postfields["url"] = $post_url;
$postfields["email"] = $post_email;
...

 

spamco champs caches

 

Résultats

Le script n’est pas parfait mais il passe relativement bien à travers Akismet. Vous pouvez par exemple implémenter le multi-thread pour aller beaucoup plus vite. Je l’utilise en local avec Wamp et j’ai du faire sauter la limitation du max_execution_time de 30 secondes pour arriver à quelque chose.

Chez moi :

spam de commentaire

 

Chez les autres :

commentaires

 

L’évolution des backlinks du site :

evolution-liens

 

Je rappelle que c’est une vieille technique et qu’il faudra quand même bien spammer pour arriver à quelque chose.

 

Code

J’avais initialement décidé de donner le script entièrement de façon publique. Je me suis ravisé. Je vous rassure, c’est toujours gratuit mais je demande un partage en contre-partie pour mon travail. Il suffit de cliquer sur ce bouton :

 

En bonus, la fonction qui permet de spinner votre pseudo pour en avoir un différent à chaque blast.

Il ne vous reste plus qu’à trouver des sites sous WordPress, à sélectionner les bons articles et à lancer la bête. Comment ? Bon, je vous mâche un peu le travail :

"powered by wordpress" "Laisser un commentaire" "9 commentaires" -"Vous devez être connecté pour rédiger un commentaire" -inurl:category -inurl:tag -inurl:page -inurl:author
"powered by wordpress" "Laisser un commentaire" "10 commentaires" -"Vous devez être connecté pour rédiger un commentaire" -inurl:category -inurl:tag -inurl:page -inurl:author
...

 

Pour ceux qui désirent se prémunir de ces scripts de spam, appliquez l’astuce de Jonathan Buttigieg, elle fonctionne bien.

Fake User Agent et indexation de page
L'utilisation des données structurées

17 Comments on “Technique de spamco : explication et script PHP”

  1. Un script qui en ravira plus d’un c’est sûr, merci pour ce partage. Il me semble qu’il est possible de faire la même chose avec Imacro non?

    Je me demandais, tu gardes pour toi la possibilité d’ajouter des proxys? car on peut se faire griller rapidement si le script tourne en boucle.
    Vu l’évolution de tes backlinks (pour l’exemple) tu ne t’es pas fait prendre par Google ou bien même les admins?

  2. Wahou je suis super dubitatif de cette technique de spamco, en tout cas ton fichier est nickel, moi qui cherche à me former un peu plus sur les Xpath et les Curl :) Je vais tester ça mais j’ai quelques doutes sur le fait que le modérateur ne remarque pas le commentaire en double…

  3. Beaucoup de potentiel en effet, même si cela doit fonctionner mieux sur les pages qui ont déjà de nombreux commentaires et ou cela passe plus facilement inaperçu !

    Comme toi j’ai quand même une forte préférence pour le “spamco manuel” qui me permet de mieux cibler et de maitriser un minimum le contenu du commentaire. J’aurais du mal à faire du commentaire automatique dans lequel je ne sais pas ce qui est posté :D

  4. Fort intéressant comme technique, même si personnellement je réalise aussi tout à la mano (ou éventuellement à l’aide de softs qui semi-automatisent, à l’instar de Fast Blog Finder).

    S’il y a une démo en direct des possibilités de spamco et autres sujets sur Strasbourg, je viens. :P

    A signaler que le partage à échoué sur Facebook avec PWAT, même si j’ai eu le script, je vais donc faire un tweet manuel en compensation.

  5. @Consultant SEO : ajout de proxies, multi threading, affichage en ajax, vérification des liens pour trouver les sources AA, il y a beaucoup de possibilités d’amélioration.
    C’est clair qu’il faut y aller plus doucement pour éviter de se faire attraper par Google, c’était un test et j’y suis allé un peu fort ;)

    @Jguiss : ta remarque est juste. Tu peux aussi jouer sur l’ancienneté des commentaires.

    @Loic : c’est la surprise lol

    @Sylvain : super merci ;)

  6. Tout abord, félicitation pour le travail de dev qui se trouve derrière ce petit script.

    C est vrai que comme ça, cela peut fonctionner et passer à travers akismet, ce qui reste une belle réussite.

    D un autre point de vue, créer autant de backlinks dans un court laps de temps est aussi l un des meilleurs moyens de se prendre une pénalité label rouge, si tu vois ce que je veux dire…

    Enfin, ça n enleve rien a l intérêt de cet article bien entendu. ;)

    Merci encore !

    1. Oui Jeremy, c’est prévu ;)

      $postfields["comment"] = str_replace('?', '\'', htmlentities($commentsArray[rand(0, count($commentsArray)-2)]));

      PS : tu commentes souvent mais les commentaires sont un poil trop courts pour que je valide le lien. Je l’ai mis en gras dans la zone de commentaire. Je suis un peu tatillon ;)

  7. J’a déja pris des blasts de ce style – ca peut peut etre passer chez des gens qui ne font pas trop gaffe aux commentaires mais chez moi en général ca ne passe pas j’ai une assez bonne mémoire des commentaires posé – je les lit tous – et donc souvent je remarque que le comm’ a été posé avant. du coup je bourinne sauvagement le poseur du comm’ (ainsi que tous les comm’s qui ont été mis avec la meme adresse mail et/ ou la meme IP – histoire de lui faire paser le gout du pain –

    Bon apres il y en a qui passe quand meme de temps en temps faut avouer

  8. Cette technique est forcément intéressante mais Akismet ne pourra pas, à l’avenir, bloquer les commentaires identiques à un autre déjà posté dans le même article ?

    C’est d’ailleurs le seul côté négatif que je trouve à ton astuce :peut-être combiner ça à du spin pour tromper l’ennemi ?

    Encore plus loin : utiliser le commentaire d’un site A pour le spamco sur un site B, dans la même thématique bien sûr. Mais ça nécessite peut-être trop de travail pour indiquer les URL dans ce thème et du coup on peut très bien le faire à la main.

    1. Bonnes idées. C’est à toi de scraper Google pour trouver les bonnes cibles après. Tu scrapes en général dans une thématique définie donc ça peut se faire. Tu te lances dans le dev et m’envois ça pas mal une fois fini ? :D

  9. Très utile comme script par contre l’utilisation est chaotique chez moi, il me trouve bien l’URL mais j’ai un joli “Can’t find comments” par la suite, alors que toute les conditions sont réunis, ne m’y connaissant pas trop en XPAth est ce un module à télécharger ? (je suis sous linux)

  10. Très astucieuse cette technique, je ne peux que dire bravo :). Par contre c’est clair que je ne l’utiliserai pas, je préfère faire mon petit taf à la mano tout comme toi. Mais je comprends ceux qui vont se ruer dessus, en d’autres lieux d’autres époques, j’aurais certainement fait pareil ;)

    1. Attention à ton spamco manuel :p J’ai déjà eu des SEO qui m’ont parlé de toi (et qui te bloquent et suppriment). Aie.

    1. Bonjour,
      Il n’y a pas de problèmes. Je vous invite à revenir vers moi par mail avec votre budget afin d’en discuter.
      Cordialement,
      Jérôme

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *