reCAPTCHA / PHP / CURL

Moderator: Mod

reCAPTCHA / PHP / CURL

Postby KASSBONBEK » Fri Nov 15, 2013 8:39 pm

Bonjour,

après avoir déjà posté sur un autre forum sans aucun succès, je me permet de reposter sur celui-ci en espérant avoir plus de chance cette fois-ci.

Voila quelque temps que je bloque. Le but de mon script est simple, je voudrais automatiser une inscription sur un site. Seulement le CAPTCHA m'en fait voir de toute les couleur. J'aimerais juste l'afficher à l'utilisateur pour que celui-ci le remplisse.

Le but du début du script est donc d'afficher sur ma page web, la page du site web distant.
J'utilise donc cURL.

Le seul problème est qu'a la place du CAPTCHA, j'ai ceci qui apparait:
[b:4ec87f0d13]Input error: Invalid referer[/b:4ec87f0d13]

J'ai essayé pendant des heures... J'avoue que je ne comprends pas comment google fait pour me différencier d'un utilisateur normal.

Voici une des version du script que j'ai faite:

[code:1:4ec87f0d13]<?php
error_reporting(E_ALL);

$lien = 'http://www.*****.com';
$cookiefile = 'cookie.txt';
fopen($cookiefile,'w');
$ch = curl_init ($lien);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, $lien);
$output = curl_exec ($ch);
echo $output;


?>
[/code:1:4ec87f0d13]


Avez-vous une idée pour contourner ce problème ?

Merci d'avance pour vos réponses.
KASSBONBEK
Projets
 
Posts: 9
Joined: Fri Nov 15, 2013 8:21 pm

Postby TorTukiTu » Sat Nov 16, 2013 2:07 pm

Le message est clair : Input error: Invalid referer

Le referer est un paramètre d'en tête transmis via les trames HTTP qui contient la page précédement visité par l'utilisateur.
Il faut donc que tu envoies le referer attendu par Google. A mon avis, tu as probablement un token ou un truc du genrs qui est passé via le referer.

Essaye de faire un test manuellement en t'inscrivant sur le site et en nous postant ici le referer que Google a utilisé ou en privé l'URL complète du site que je jette un oeuil si tu veux.

Tortue
User avatar
TorTukiTu
Site Admin
 
Posts: 1960
Joined: Thu Feb 07, 2008 10:24 pm
Location: Devant son pc durant la redaction de ce message

Postby KASSBONBEK » Sun Nov 17, 2013 2:55 pm

OK.

Je ne comprends pas comment voir le referer utilisé par google quand je m'inscris manuellement.
Peux tu m'expliquer ?
KASSBONBEK
Projets
 
Posts: 9
Joined: Fri Nov 15, 2013 8:21 pm

Postby TorTukiTu » Sun Nov 17, 2013 4:25 pm

[quote:1d7b0781d1]Je ne comprends pas comment voir le referer utilisé par google quand je m'inscris manuellement. [/quote:1d7b0781d1]

Le referer est probablement utilisé par google pour savoir si tu as bien effectué un pacours normal avant d'arriver à la page d'inscription, et que tu n'essayes justement pas de truander.

Tu as plusieurs facon de voir ca. La plus simple étant de regarder l'url qui s'affiche dans la barre de ton navigateur en fesant attention aux redirections qui pourraient passer inapercu juste avant la page en question.

Tu as des plugins firefox qui te permettent de voir le contenu des en-têtes HTTP.

Dans le pire des cas, dump ton traffic HTTP avec un sniffer (Wireshark, tcpdump ou autre).

Tortue 974.

PS:
[quote:1d7b0781d1]qui contient la page précédement visité par l'utilisateur[/quote:1d7b0781d1]
Je parlais de l'url de la page et non de la page elle-même bien ententu.
User avatar
TorTukiTu
Site Admin
 
Posts: 1960
Joined: Thu Feb 07, 2008 10:24 pm
Location: Devant son pc durant la redaction de ce message

Postby KASSBONBEK » Sun Nov 17, 2013 5:38 pm

J'ai un plugin chrome: http headers.

Il me balance ça :

[code:1:229a284473]Name Value
Date Sun, 17 Nov 2013 16:34:09 GMT
Content-Encoding gzip
Server nginx
X-Frame-Options SAMEORIGIN
T411-node rm3
Vary Accept-Encoding
Content-Type text/html; charset=windows-1252
Transfer-Encoding chunked
[/code:1:229a284473]

Je vois rien concernant le referrer....
KASSBONBEK
Projets
 
Posts: 9
Joined: Fri Nov 15, 2013 8:21 pm

Postby TorTukiTu » Sun Nov 17, 2013 9:06 pm

Mmm, essaye d'utiliser le service https du serveur si tu le peux. Normalement, le referer n'est pas envoyé en utilisant https.

Accessoirement, fais un tour sur www .whatismyreferer. com pour tester ton addon et vérifier que tu vois bien le referer.

Tortue 974.
User avatar
TorTukiTu
Site Admin
 
Posts: 1960
Joined: Thu Feb 07, 2008 10:24 pm
Location: Devant son pc durant la redaction de ce message

Postby KASSBONBEK » Sun Nov 17, 2013 9:46 pm

No referer / Hidden
KASSBONBEK
Projets
 
Posts: 9
Joined: Fri Nov 15, 2013 8:21 pm

Postby TorTukiTu » Mon Nov 18, 2013 8:12 am

La première fois tu auras no referer. Essaye de rafraichir la page en cliquant sur le lien en bas.
Tu as essayé d'utiliser https dans ton script ?

tortue 974.
User avatar
TorTukiTu
Site Admin
 
Posts: 1960
Joined: Thu Feb 07, 2008 10:24 pm
Location: Devant son pc durant la redaction de ce message

Postby KASSBONBEK » Mon Nov 18, 2013 7:28 pm

alors:

effectivement quand je clique sur le lien sur whatsmyreferer, j'ai bien le bon referrer qui s'affiche.

Ensuite, j'ai essayé ça:

[code:1:79d1c4e770]error_reporting(E_ALL);

$lien = 'https://www.blablabla.com';
$cookiefile = 'cookie.txt';
fopen($cookiefile,'w');
$ch = curl_init ($lien);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, 'https://www.google.fr/search?q=lesite');
$output = curl_exec ($ch);
echo $output; [/code:1:79d1c4e770]


Même résultat. Peut être n'ai je pas bien compris ce que tu m'as dis ?

Je t'envois par MP le site que je suis entrain de tester.
Last edited by KASSBONBEK on Mon Nov 18, 2013 7:45 pm, edited 1 time in total.
KASSBONBEK
Projets
 
Posts: 9
Joined: Fri Nov 15, 2013 8:21 pm

Postby KASSBONBEK » Mon Nov 18, 2013 7:45 pm

En tout cas quand je check sur chrome les headers envoyés :

[code:1:5b85a1f7d7]GET /test.php HTTP/1.1
Host: ***
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en,fr-FR;q=0.8,fr;q=0.6,en-US;q=0.4
Cookie: __utma=182650040.610580476.1382223246.1384711715.1384799184.20; __utmb=182650040.5.10.1384799184; __utmc=182650040; __utmz=182650040.1382223246.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); clusterBAK=R1564862758; OVHCDN=R2163938180; cluster=R1649270232[/code:1:5b85a1f7d7]

le referer n'est pas envoyé.....
KASSBONBEK
Projets
 
Posts: 9
Joined: Fri Nov 15, 2013 8:21 pm

Postby TorTukiTu » Mon Nov 18, 2013 8:31 pm

[quote:164fa3d2d4]Même résultat. Peut être n'ai je pas bien compris ce que tu m'as dis ? [/quote:164fa3d2d4]

Si, tu as bien compris. Bizzare bizzare... je vais regarder ca de plus près quand j'aurai un moment.

Tortue 974.
User avatar
TorTukiTu
Site Admin
 
Posts: 1960
Joined: Thu Feb 07, 2008 10:24 pm
Location: Devant son pc durant la redaction de ce message

Postby KASSBONBEK » Mon Nov 18, 2013 9:22 pm

Ok ça marche ! Tiens moi au jus, je continus à chercher en attendant...

merci en tout cas
KASSBONBEK
Projets
 
Posts: 9
Joined: Fri Nov 15, 2013 8:21 pm

Postby KASSBONBEK » Mon Nov 18, 2013 9:49 pm

Pour info, si je cURL http://www.whatismyreferer.com/, le cURL est bien modifié par l'option CURLOPT_REFERER.

Pourtant toujours la même erreur: INVALID REFERER....
KASSBONBEK
Projets
 
Posts: 9
Joined: Fri Nov 15, 2013 8:21 pm

Postby SHEPSHEP » Tue Nov 19, 2013 11:56 am

Salut KASSBONBEK,
Salut Tortu,

Par défaut ReCAPTCHA est restreint à un domaine spécifique et ses sous domaines.

En spécifiant en REFERER le ND du site cible, ca ne marche pas ?

++
2ShEp

EDIT 0 : En relisant le premier post de Tortu j'ai titlé qu'il y avait bien un système de clé (token) en plus de la vérification du REFERER.

EDIT 1 : [quote:0110c51c5c]When I view the html source code for the page, I found the following
code:

<script type="text/javascript" src="http://api.recaptcha.net/challenge?
k=6LcB47oSAAAAACB4ldZjQraw1-OYI2tDbfF-bEoQ">

Clicking on the serc, I get the following output:

document.write('Input error: Invalid referer'); [/quote:0110c51c5c]
SHEPSHEP
Projets
 
Posts: 268
Joined: Wed Apr 08, 2009 11:14 am
Location: /dev/null

Postby KASSBONBEK » Tue Nov 19, 2013 12:46 pm

OK.

Mais je ne comprends pas comment c'est possible. cURL simule bien une requête HTTP non ?

Qu'est ce qui va différencier une demande faite par le serveur et donc cURL d'une demande d'un client ?

Le but est que le serveur se comporte exactement comme un client a l'exception près ou celui-ci transmet à la volet le captcha à l'utilisateur

Il me semble que le logiciel jdownloader permet déjà d'afficher le captcha distant, et même pour google.

Peut être est-il possible de le faire avec une autre techno ?
KASSBONBEK
Projets
 
Posts: 9
Joined: Fri Nov 15, 2013 8:21 pm


Return to Php

Who is online

Users browsing this forum: No registered users and 3 guests

cron