Ergebnis 1 bis 7 von 7
  1. #1
    Anfänger
    Registriert seit
    16.12.2011
    Beiträge
    15

    Standard reCaptcha Tutorial

    Heyo FH!
    Ich habe mir mal den "Aufwand" gemacht und einen kleinen Sample-Code für reCaptcha geschrieben. Diesen werde ich euch nun im Rahmen eines kleinen Tutorials von mir näher erläutern und gerne auch auf Anfrage eine Demo hosten oder euch den Code zuschicken / uploaden / veröffentlichen.
    Die reCaptcha Dokumentation beinhaltet eigentlich alles aber eben auf Englisch. Aber nun zum wesentlichen!

    Im letzten Codeblock wurden die eckigen Klammern [ und ] durch ersetzt. Ihr müsst das beim nachcoden beachten, selbstverständlich sind [ und ] gemeint! Das liegt an vB denke ich, habe eben probiert das ganze zu fixxen, was aber nicht funktioniert hat.
    --------------------------------------------
    1.) reCatpcha Keys bekommen
    Zunächst einmal müsst ihr den öffentlichen sowie privaten Schlüssel für eure Seite bekommen. Dazu tragt ihr hier eure Seiten-URL ein und erstellt eure Keys, diese 2 Keys solltet ihr euch auf jeden Fall abspeichern.
    2.) reCaptcha-Bibliothek bekommen
    Ladet euch hier die reCaptcha-Bibliothek für PHP herunter. Der aktuelle Stand bei der Verfassung dieses Tutos war Version 1.11
    3.) Die Einbindung in PHP
    PHP-Code:
    <?php
    //In der nächsten Zeile wird die Datei recaptchalib.php in das PHP-Dokument eingebunden - auf Dateiberechtigungen & Namen achten!
     
    require_once('recaptchalib.php');
    //Hier wird die Variable 'publickey' mit dem Inhalt des Public Keys den ihr von Schritt 1 her kennen solltet.
      
    $publickey "Secret :3 "
    //Die eigentliche Ausgabe das Captchas
      
    echo recaptcha_get_html($publickey);
    ?>
    Darum muss nurnoch ein Formular gebaut werden, das bei mir einfach so aussah:
    HTML-Code:
    <form action="check_recaptcha.php" method="POST">
    <!-- Der reCaptcha PHP-Code -->
    <!-- Andere Formularfelder (oder auch nicht) -->
    </form>
    4.) Das Catpcha überprüfen
    Bei mir heisst die folgende Datei check_recaptcha.php. Wichtig ist das die form in Schritt 3 an diese Datei sendet.
    PHP-Code:
    <?php
     $privatekey 
    "Noch geheimer";
       
    $resp recaptcha_check_answer ($privatekey,
                                    
    $_SERVER+++91;"REMOTE_ADDR"+++93;,
                                    
    $_POST+++91;;"recaptcha_challenge_field"+++93;,
                                    
    $_POST+++91;"recaptcha_response_field"+++93;);

      if (!
    $resp->is_valid) {
        
    // Dieser Code wird ausgegeben wenn die Antwort vom reCatpcha-Server negativ ist (daraus folgt: Das Captcha wurde falsch eingegeben)
        
    echo "Du bist aber auch ganz schön blöd, nichma n Captcha schaffste!"
    else{
    echo 
    "Das hast du toll gemacht!";
    }
    ?>
    Ich hoffe ihr wisst nun wie ihr reCatpcha in PHP verwendet - wenn nicht dann tuts mir sehr sehr leid für euch ô.Ô. Aber natürlich könnt ihr mich per PM, oder Mail (11880@Safe-Mail.net) bzw. ICQ (756026) kontaktieren und Fragen stellen. Sollte mein Tutorial fehlerhaft sein an irgendeiner Stelle (habe den Code nicht noch einmal gecheckt) bitte meldet das mir persönlich
    Geändert von 11800 (16.12.2011 um 16:03 Uhr)

  2. #2
    W32.Lovgate
    Registriert seit
    05.11.2008
    Beiträge
    367

    Standard AW: reCaptcha Tutorial

    Interessanter Beitrag, passt genau zu meinem aktuellem vorhaben.
    Ich konnte es biss jetzt nicht nachweisen, aber ich denke mir das das man ein ausgefülltes reCaptcha auch zu einem späterem Zeitpunkt nutzen könnte oder ?

    Also nach dem Schema:
    1.Man hat ein kleines Äffchen das für einen die Captchas ausfüllt und abschickt.
    z.b. hier https://www.google.com/recaptcha/api...JG6-KSGQmeNhlL
    2. Das Äffchen hat alles richtig gemacht und bekommt seine Belohnung, das würde die Form eines recaptcha_challenge_field einnehmen, etwa so:
    recaptcha_challenge_field=03AHJ_VusSQIbRuLjThQdsAm 7g03xUCHfGb02J96qebzKrt2LngLhK9dDJYPiB4aXkCBJADl20 PRDKBaZOhjrLtbUr1NPUYF4Lx2bwcno0DMJR_lwRjELdeaPPNy hacENmI3eTv8ZWG0welKFIdwSe-nLR729wKWO0Fw.
    Unser Äffchen hat sich sich gleich gemerkt was es als captcha eingetippt hat, etwa so:
    recaptcha_response_field=Tolles+Captcha
    4. Jetzt hat man für das ausfüllen der eigentlichen Registration na klar ein Script, welches so die ganzen Daten wie Geburtstag, Geschlecht, E-Mail, ... und so ausfüllt.

    Frage:

    Könnte man für diese Registrierung auch die Daten des zuvor vom Äffchen ausgefüllten Captchas mitgeben, also das hier:
    recaptcha_challenge_field=03AHJ_VusSQIbRuLjThQdsAm 7g03xUCHfGb02J96qebzKrt2LngLhK9dDJYPiB4aXkCBJADl20 PRDKBaZOhjrLtbUr1NPUYF4Lx2bwcno0DMJR_lwRjELdeaPPNy hacENmI3eTv8ZWG0welKFIdwSe-nLR729wKWO0Fw&recaptcha_response_field=Tolles+Capt cha
    und die Registrierung so erfolgreich abschliessen ?

  3. #3
    Anfänger
    Registriert seit
    16.12.2011
    Beiträge
    15

    Standard AW: reCaptcha Tutorial

    Ich verstehe die Frage nicht, könntest du das vllt. etwas konkretisieren? Grundsätzlich wird bei jedem Seitenaufruf ja ein neues Captcha generiert. Möchte man die Seite später verwenden und hat meine Möglichkeit sie 'offenzulassen' (cURL zum Beispiel) muss man sich die Cookies speichern um die Session wieder aufzunehmen. Das ist aber nur Theorie, praktische Erfahrung mit cURL habe ich wenig.

  4. #4
    W32.Lovgate
    Registriert seit
    05.11.2008
    Beiträge
    367

    Standard AW: reCaptcha Tutorial

    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($curlCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
        
    curl_setopt($curlCURLOPT_URL$recaptcha_url);
        
    curl_setopt($curlCURLOPT_RETURNTRANSFERTRUE);
        
    curl_setopt($curlCURLOPT_FOLLOWLOCATIONTRUE);
        
    curl_setopt($curlCURLOPT_SSL_VERIFYPEERFALSE);
        
    curl_setopt($curlCURLOPT_COOKIEJAR'google_cookie.txt');
        
    curl_setopt($curlCURLOPT_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&amp;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($curlCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
        
    curl_setopt($curlCURLOPT_URL$recaptcha_url);
        
    curl_setopt($curlCURLOPT_RETURNTRANSFERTRUE);
        
    curl_setopt($curlCURLOPT_FOLLOWLOCATIONTRUE);
        
    curl_setopt($curlCURLOPT_SSL_VERIFYPEERFALSE);
        
    curl_setopt($curlCURLOPT_COOKIEJAR'google_cookie.txt');
        
    curl_setopt($curlCURLOPT_COOKIEFILE'google_cookie.txt');
        
    curl_setopt($curlCURLOPT_POSTTRUE);
        
    curl_setopt($curlCURLOPT_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.
    Geändert von Freak1936 (21.01.2012 um 22:05 Uhr)

  5. #5
    Support-Hure Avatar von sn0w
    Registriert seit
    18.09.2007
    Beiträge
    1.919

    Standard AW: reCaptcha Tutorial

    Zu dem Fremd-Ausfüllen: Es muss gehen Siehe Captcha Trader usw. Dort wird auch das Captcha an wen anderes weitergeleitet und von diesem auch ausgefüllt

    Boardregeln | SuFu | Blackmarket | PM

    Fragezeichen und Ausrufezeichen sind keine Rudeltiere!


  6. #6
    W32.Lovgate
    Registriert seit
    05.11.2008
    Beiträge
    367

    Standard AW: reCaptcha Tutorial

    Ja "Captcha-Trader" iss mir persönlich ein neuer Begriff, hab den gleich mal gegoogelt und siehe da: Das ist so FAST das Prinzip welches ich meinte.
    Ich weiß nicht wie breit da das Anwendungsgebiet gestreut ist, das meiste steht in Verbindung mit dem JDownloader, aber es werden ja auch schon fertige "CaptchaTrader API" angeboten. Mal sehen ob man diese i.w. in ein PHP/Javascript einbauen kann ...

    1000 Captchas = 1$, diese kosten wären ja noch recht überschaubar ^^

  7. #7
    Anfänger
    Registriert seit
    16.12.2011
    Beiträge
    15

    Standard Re: reCaptcha Tutorial

    Captchatrader benutze ich selbst zum Botten bei Browsergames & eben für pyLoad (jDownloader Alternative ohne GUI also perfekt für meinen kleinen Linux-Server)
    Ist Super, habe nur durch Refs glaube ~8,5k Credits da. Spitze Seite, kann ich nur empfehlen.

Ähnliche Themen

  1. [Szene] Researcher Cracks ReCAPTCHA
    Von meckl im Forum Globale News / Szene News
    Antworten: 0
    Letzter Beitrag: 19.08.2010, 11:11
  2. Antworten: 14
    Letzter Beitrag: 24.04.2009, 14:14
  3. Antworten: 43
    Letzter Beitrag: 22.04.2009, 11:09

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •