Jepp und genau das war eigentlich auch schon meine Frage, kann man von z.b. anderern Personen ausgefüllten reCaptchas auch etwas Zeit versetzt noch benutzen ?
Ich habe mir jetzt einfach selber nochmal was geschrieben um das zu überprüfen.
meinvz_google_recaptcha.php:
PHP-Code:
//1. Mit Curl das reCaptcha holen und parsen
//2. recaptcha eingeben und mit restlichen recaptcha daten abschicken
$recaptcha_url = 'https://www.google.com/recaptcha/api/noscript?k=6LfuB70SAAAAAEAski1gUUx2lHJG6-KSGQmeNhlL&is_audio=false';
//1. Mit Curl das reCaptcha holen und parsen
//Mit Curl das reCaptcha holen
$curl = curl_init();
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($curl, CURLOPT_URL, $recaptcha_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_COOKIEJAR, 'google_cookie.txt');
curl_setopt($curl, CURLOPT_COOKIEFILE, 'google_cookie.txt');
$site = curl_exec($curl);
curl_close($curl);
//recaptcha_challenge_field und captcha_bild_url parsen
preg_match('#<form action="" method="POST"><input type="hidden" name="recaptcha_challenge_field" id="recaptcha_challenge_field" value="(.*)">#', $site, $recaptcha_challenge_field);
$recaptcha_bild_url = 'https://www.google.com/recaptcha/api/image?c='.$recaptcha_challenge_field+++91;1+++93;;
//2. recaptcha eingeben und mit restlichen recaptcha daten abschicken
echo'<center>
<form action="google_recaptcha_post.php" method="POST">
<img src="'.$recaptcha_bild_url.'"><br>
<input name="recaptcha_response_field" type="text" autocomplete="off">
<input name="recaptcha_url" type="hidden" value="'.$recaptcha_url.'"><br>
<input name="recaptcha_challenge_field" type="hidden" value="'.$recaptcha_challenge_field+++91;1+++93;.'"><br>
<input name="recaptcha_bild_url" type="hidden" value="'.$recaptcha_bild_url.'"><br>
<a href="?k=6LfuB70SAAAAAEAski1gUUx2lHJG6-KSGQmeNhlL&is_audio=false">Neues Bild</a><br>
<input type="submit" name="submit" value="I+++39;m a human"><br>
</form></center>';
//zusammenfassung
echo'<pre>
<center><h3>Zusammenfassung:</h3></center>
recaptcha_challenge_field = '.$recaptcha_challenge_field+++91;1+++93;.'<br>
recaptcha_challenge_field_key = <br>
recaptcha_response_field = <br>
recaptcha_url = '.$recaptcha_url.'<br>
recaptcha_bild_url = '.$recaptcha_bild_url.'<br></pre>';
?>
Der erste Teil holt sich das cap von der entsprechenden Seite, in diesem falle https://www.google.com/recaptcha/api...is_audio=false. (Auf diesen Link werden die recaps von MeinVZ geschickt, die von Hotmail sieht z.b. so aus:https://www.google.com/recaptcha/api...is_audio=false).
Man gibt das reCaptcha ein und es wird an den 2 Teil des Scriptes geschickt
meinvz_google_recaptcha_post.php
PHP-Code:
<?php
//1. POST array auslesen und http_querry erstellen
//2. cURL starten und $recaptcha_response_field abschicken und recaptcha_challenge_field_key parsen
//POST array auslesen und http_querry erstellen
//POST array auslesen
$recaptcha_array = array();
$recaptcha_array+++91;'recaptcha_challenge_field'+++93; = $_POST+++91;'recaptcha_challenge_field'+++93;;
$recaptcha_array+++91;'recaptcha_response_field'+++93; = $_POST+++91;'recaptcha_response_field'+++93;;
$recaptcha_array+++91;'submit'+++93; = $_POST+++91;'submit'+++93;;
$recaptcha_url = $_POST+++91;'recaptcha_url'+++93;;
$recaptcha_bild_url = $_POST+++91;'recaptcha_bild_url'+++93;;
//aus $recaptcha_array einen http_querry erstellen
$post_data = http_build_query($recaptcha_array);
//cURL starten und $recaptcha_array in $post_data abschicken
//curl session
$curl = curl_init();
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($curl, CURLOPT_URL, $recaptcha_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_COOKIEJAR, 'google_cookie.txt');
curl_setopt($curl, CURLOPT_COOKIEFILE, 'google_cookie.txt');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$site = curl_exec($curl);
curl_close($curl);
//$recaptcha_challenge_field_key parsen
preg_match('#<textarea rows="5" cols="100">(.*)</textarea>#', $site, $recaptcha_challenge_field_key);
//zusammenfassung
echo '<pre>
<center><h3>Zusammenfassung:</h3></center>
recaptcha_challenge_field = '.$recaptcha_array+++91;'recaptcha_challenge_field'+++93;.'<br>
recaptcha_challenge_field_key = '.$recaptcha_challenge_field_key+++91;1+++93;.'<br>
recaptcha_response_field = '.$recaptcha_array+++91;'recaptcha_response_field'+++93;.'<br>
recaptcha_url = '.$recaptcha_url.'<br>
recaptcha_bild_url = '.$recaptcha_bild_url.'<br>
</pre>';
echo'<center>
<form action="meinvz_register.php" method="POST">
<input name="recaptcha_challenge_field" type="text" value="'.$recaptcha_challenge_field_key+++91;1+++93;.'"><br>
<input name="recaptcha_response_field" type="text" value="'.$recaptcha_array+++91;'recaptcha_response_field'+++93;.'"><br>
<input name="recaptcha_url" type="text" value="'.$recaptcha_url.'"><br>
<input name="recaptcha_bild_url" type="text" value="'.$recaptcha_bild_url.'"><br>
<input type="submit" name="submit" value="Seite 1 anlegen"><br></center>';
?>
Wichtig ist, wie auch in dem Tut von 11800 beschrieben, das man 2 keys bekommt. Ich weiss es nicht genau aber ich vermute mal das sind die von Dir angesprochenen public und private keys, welche beide als recaptcha_challenge_field gesendet werden.
Also geht man quasi auf die capseite, beim Aufruf der ersten Seite wird z.b. ein solcher vergeben, der wird zusammen mit dem recaptcha_response_field abgeschickt:
recaptcha_challenge_field=03AHJ_Vuu4MAOKuSXuOtAyFk-fbOjgqMDXc9v-npslj-MmWIk8hiTs9I917333b9UYNldr-LXusVoKeUF553KhTY5EyZV22VadP412p2UNRJb4rRWxL4TRGpp UFuYzw-p2RgBgVQuiieJ498DPZ44QHom2USLQciUd1w&recaptcha_res ponse_field=500+xpleter&submit=I%27m+a+human
Man erhält einen zweiten key zurück, der den alten in recaptcha_challenge_field überschreibt, zum vergleich hier einmal der alte, ich vermute eben das ist der public key:
recaptcha_challenge_field=03AHJ_Vuu4MAOKuSXuOtAyFk-fbOjgqMDXc9v-npslj-MmWIk8hiTs9I917333b9UYNldr-LXusVoKeUF553KhTY5EyZV22VadP412p2UNRJb4rRWxL4TRGpp UFuYzw-p2RgBgVQuiieJ498DPZ44QHom2USLQciUd1w&.
Und hier der neue, den man bekommt wenn das cap gelöst wurde, also wohl der private key:
recaptcha_challenge_field=03AHJ_Vut8X24pAV7yI1f8OW 0uUymhc8IS6UHOd72fiO_Ga6Pw2aXulmWsgDNceIMvJsYJjdyI 1SocKB-PEO6NADO2Kzk4qm4j5Va6zERt7Go8ieFrqNfqBLlJy5-vKdz7pnO0m5xG54By.
Um jetzt z.b. ein "MeinVZ" Registrierung abzuschliessen, muss man also das neue recaptcha_challenge_field und die eingabe in recaptcha_response_field zusammen mit einigen anderen Parametern übergeben und die Registrierung hat geklappt.
Mein Gedanke wäre ja na klar die Caps von dritten ausfüllen zu lassen und mit den ergebnissen a.) z.b. Accounts erstellen un b.) eine Datenbank aufzubauen um evtl. eine OCR Software damit füttern zu können, die das cap knacken kann. Ich weiss nich ob das überhaupt mit der OCR Software gehen würde, aber ich mein gelesen zu haben das die Software nach einigen tausenden manuell eingegebenen recaptchas dazu im stande wäre ...
Darüber "wie-lange" man diese Private Keys noch nutzen könnte, liegen mir leider noch keine Ergebnisse vor, aber das werde ich auch noch mal testen.