Agence web et solutions IT, Experts Symfony contact@avanim-prod.com

Ecrire un script de SpamReferer avec CURL

15 mars 2011 jravouna Référencement - SEO Étiquettes : , , , 1 Comment

P7B772XETCKS

Aujourd’hui nous allons voir comment coder un petit script shell en PHP permettant de faire du spam referer (ou spam referrer).

Evidement, si vous ne savez pas ce qu’est le spam referrer et à quoi il sert, passez votre chemin, sinon vous profiterez de ce petit tutorial avec plaisir j’espère !

Tout d’abord, il y a quelques temps, j’ai récupéré un script PHP/HTML permettant de générer ce genre de spam. Le souci c’est que j’aime pas automatiser des tâche Web. Il faut utiliser un cron avec wget et je ne trouve pas cela pratique pour les rapports de log ou les traitements. Le script original se trouve chez nos amis de seoblackout. Ce script utilise ingénieusement la librairie Curl de PHP, le seul problème est qu’il est en mode web.

1/ Etude

L’idée principale est de fournir un script pouvant être executer de la sorte :

Usage : php URL Nombre [proxy_URL proxy_PROTOCOL]

où :
– php : est le client shell php
– URL : est l’URL à mettre en referrer
– Nombre : est le nombre de requêtes à envoyer
– proxy_URL : est l’adresse au format IP:PORT du proxy
– proxy_PROTOCOL : est le protocol du proxy (http par default) ou sock4, socks5

2/ Modification du script de base

Je vous laisse le soin de récupérer le code à l’adresse donnée si-dessus.
Le but de la modification consiste à changer les requêtes  GPC par des arguments ($argv en php).
Nous allons procéder comme suit :
Le première chose à faire est d’indiquer le « Usage » en l’absence de paramètres suffisants :

/* Display USage */

if (!isset($argc) || $argc < 3) {
  echo "SpamReferrer Script (Use With Caution !)n Usage : php URL Nombre [proxy_URL proxy_PROTOCOL]";
  die();
}

Ensuite il faut modifier la récupération des variables GPC en $argv. Insérer les lignes suivantes après la fonction CurlSpam() :

$_POST['referer']       = $argv[1];
$_POST['NBrequetes']    = $argv[2];
$proxyURL               = (isset($argv[3]))? $argv[3] : '';
$proxyPROTOCOL          = (isset($argv[4]))? $argv[4] : '';

Et permettre au script de récupérer les infos des arguments du proxy dans l'appel à la fonction CurlSpam() :

CurlSpam($proxyURL, $proxyPROTOCOL, $referer, $urlspam[$i]);

et le tour est joué !

3/ Tester avec un proxy HTTP

Dans l'exemple j'ai juste rajouté quelques lignes pour le verbose et renommé le script en spamreferrer-cli.php.

php spamReferer-cli.php http://www.xxxxxxxxxxx.com 1 186.3.109.130:80
< HTTP/1.1 200 OK
< Date: Tue, 15 Mar 2011 19:00:44 GMT
< Server: Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 PHP/5.2.6-1+lenny9 with Suhosin-Patch mod_pubcookie/3.3.3 mod_python/3.3.1 Python/2.5.2 mod_ssl/2.2.9 OpenSSL/0.9.8g mod_perl/2.0.4 Perl/v5.10.0
< Last-Modified: Wed, 04 Feb 2004 21:51:04 GMT
< ETag: "1060c53-4b1-3d28dd0b6e200"
< Accept-Ranges: bytes
< Content-Length: 1201
< Content-Type: text/html
< 
* Connection #0 to host 186.3.109.130 left intact
* Closing connection #0
Spam referrer 1 : referrer = http://www.xxxxxxxx.com pour le site http://www.xxxx.edu en cours ...
-> Retour : 200

1 Comment

  1. Staysha 5 années Répondre

    Good point. I hadn’t tohguht about it quite that way. 🙂