Dieser Beitrag bezieht sich auf Google ReCaptcha v2 (nicht die neueste Version)
Kürzlich hat Google ein vereinfachtes "Captcha" -Verifizierungssystem ( Video ) eingeführt, mit dem Benutzer das "Captcha" durch einfaches Klicken weitergeben können.
Aber wie kann es einen Bot durch einen Klick von einer Person unterscheiden?
Gemäß dieser Antwort (eine ähnliche Implementierung vorausgesetzt) auf dem ersten „recaptcha“ erzeugt ihn einen versteckten Schlüssel und Attaches zu einem Eingangselement versteckt und macht auch träge ein Kontrollkästchen (nicht ein tatsächliches Kontrollkästchen , input
sondern ein div
) mit dem gleichen Schlüssel der Wenn Sie darauf klicken, wird eine asynchrone Anforderung (XHR) an die Google-Backend-Server gesendet, um sie als gültigen Bestätigungsschlüssel zu kennzeichnen (dh als Schlüssel, der beim Senden des Formulars überprüft werden muss).
Aber warum können Bots diesen Klick nicht automatisieren (zumindest browserbasierte Bots)?
Wie könnte das funktionieren?
Antworten:
Dies ist eine Spekulation, die jedoch auf Googles Verweis auf die von ihnen verwendete "Risikoanalyse-Engine" basiert ( http://googleonlinesecurity.blogspot.com/2014/12/are-you-robot-introducing-no-captcha.html ).
Ich würde annehmen, dass es sich darum handelt, wie Sie sich vor dem Klicken verhalten haben, wie sich Ihr Cursor auf dem Weg zum Check (organischer Pfad / Beschleunigung) bewegt hat, welcher Teil des Kontrollkästchens angeklickt wurde (zufällige Stellen oder jedes Mal tot in der Mitte), Browser Fingerabdruck, Google-Cookies und -Inhalte, Klick-Standortverlauf, der mit Ihrem Fingerabdruck oder Konto verknüpft ist, falls einer erkannt wird usw.
Es ist ziemlich schwierig, "organisches" Verhalten so vorzutäuschen, dass es eine kontinuierlich lernende Mustererkennungs-Engine zum Narren hält. In den Fällen, in denen es nicht sicher ist, werden Sie dennoch aufgefordert, eine tatsächliche CAPTCHA-Zeichenfolge abzugleichen.
quelle
Es wurde ein neues Papier mit mehreren Tests gegen reCAPTCHA veröffentlicht:
https://www.blackhat.com/docs/asia-16/materials/asia-16-Sivakorn-Im-Not-a-Human-Breaking-the-Google-reCAPTCHA-wp.pdf
Einige Highlights:
Google hat die Cookie-Sicherheitsanfälligkeit bereits behoben und schränkt wahrscheinlich einige Verhaltensweisen basierend auf IPs ein.
Ein weiteres interessantes Ergebnis ist, dass Google eine VM in JavaScript ausführt, die einen Großteil des reCAPTCHA-Codes und -Verhaltens verschleiert. Diese VM wird als Botguard bezeichnet und dient zum Schutz anderer Dienste neben reCAPTCHA:
https://github.com/neuroradiology/InsideReCaptcha
UPDATE 2017
Ein kürzlich veröffentlichtes Papier (ab August) wurde auf WOOT 2017 veröffentlicht und erreicht eine Genauigkeit von 85% bei der Lösung von noCAPTCHA reCAPTCHA-Audio-Herausforderungen:
http://uncaptcha.cs.umd.edu/papers/uncaptcha_woot17.pdf
UPDATE 2018
Google führt reCAPTCHA v3 ein, das wie eine "Human Score Prediction Engine" aussieht, die pro Website kalibriert wird. Es kann auf verschiedenen Seiten einer Website installiert werden (funktioniert wie ein Google Analytics-Skript), um reCAPTCHA und dem Websitebesitzer zu helfen, das Verhalten von Menschen gegenüber Bots zu verstehen, bevor ein reCAPTCHA ausgefüllt wird.
https://www.google.com/recaptcha/intro/v3beta.html
quelle
mouse events don't affect the results
Das ist interessant, da ich (und ich glaube viele andere) gedacht hatte, dass dies die Hauptsache ist, die die Ergebnisse beeinflusst. Ich dachte, auf dem Handy sollten Benutzer anstelle des Kontrollkästchens alle Bilder auswählen, die gleich sind, da auf einem Touchscreen keine Mausbewegungen ausgeführt werden. Beim erneuten Betrachten des einführenden Blogposts scheint dies jedoch möglicherweise nicht der Fall zu sein. Vielleicht besteht die Auswahl von Bildern darin, verzerrten Text einzugeben und nicht ein Kontrollkästchen zu aktivieren. Wissen Sie (oder jemand), ob reCAPTCHA jemals das einfache Aktivieren eines Kontrollkästchens auf dem Handy erlaubt?Tab
und drückenEnter
, um das Kontrollkästchen zu aktivieren, wird das Bild-Captcha angezeigt, damit Sie es anhand eines Kriteriums auswählen können.Tab
undEnter
zeigen das Bild-Captcha nicht immer an. Die meiste Zeit drückenTab
undEnter
wird akzeptiertMeine Bots laufen gut gegen ReCaptcha.
Hier meine Lösung.
Lassen Sie Ihren Bot diese Schritte ausführen:
Schreiben Sie zuerst eine menschliche Mausbewegungsfunktion, um Ihre Maus wie einen B-Spline zu bewegen (fragen Sie mich nach dem Quellcode). Dies ist der wichtigste Punkt.
Verwenden Sie für bessere Ergebnisse auch ein VPN wie https://www.purevpn.com
Führen Sie für jeden Recpatcha die folgenden Schritte aus:
Wenn Sie zuerst die VPN-Switch-IP verwenden
Löschen Sie alle Browser-Cookies
Löschen Sie den gesamten Browser-Cache
Stellen Sie eines dieser Useragents nach dem Zufallsprinzip ein:
ein. Mozilla / 5.0 (kompatibel; MSIE 9.0; Windows NT 6.1; Trident / 5.0)
b. Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 44.0) Gecko / 20100101 Firefox / 44.0
5 Bewegen Sie Ihre Maus mit der menschlichen Maus. Bewegen Sie die Funktion jedes Mal von einem zufälligen Punkt in das Ich bin kein Roboterbild mit einem anderen 10x10-Zufallsbereich
Dann klicken Sie immer mit zufälliger Verzögerung zwischen
WM_LBUTTONDOWN
und
WM_LBUTTONUP
Screenshot von Image Captcha machen
Screenshot senden an
http://www.deathbycaptcha.com
oder
https://2captcha.com
und lassen sie lösen.
Nachdem Sie Click-Cooridinate vom Captcha-Solver erhalten haben, bewegen Sie sich mit Ihrer Human-Mouse-Move-Funktion und klicken Sie auf Recaptcha-Bilder
Verwenden Sie Ihre Human Mouse Move Funktion, um sich zu bewegen, und klicken Sie auf die Schaltfläche Recaptcha Verify
In 75% werden alle Versuche von Recaptcha gelöst
Chears Google
Tom
quelle
Darf ich meine Vermutung vorlegen, da dies keine offene Technologie ist.
Laut Google geht es darum, Informationen vor, während und nach dem Kämmen zu kämmen, um Menschen von Robotern zu unterscheiden. Aber ich bin mehr an diesem letzten Klick auf das Kontrollkästchen interessiert.
Angenommen, die POST-Daten (gelöstes CAPTCHA) haben ein Feld namens Fingerabdruck, eine Zeichenfolge, die aus dem Benutzerverhalten berechnet wird. Ich denke, es gibt möglicherweise ein Feld über diese Kontrollkästchenposition. Ich denke, dieses Kontrollkästchen befindet sich in einem Koordinatensystem, das zufällig vom Google-Backend generiert und mit dem öffentlichen Schlüssel meiner Website verschlüsselt wurde. Ein Roboter kann also einen Ort in diesem Feld "erraten / berechnen". Wenn der Websitebesitzer jedoch die GET-Abfrage mit einem privaten Schlüssel durchführt, um die Benutzeridentität zu überprüfen, entschlüsselt Google das Koordinatensystem und sagt, ob der Benutzer auf die richtige Stelle klickt. Nur ein möglicher Rechtsklick (mit einigen Offsets ist es ein quadratisches Kästchen) in diesem zufälligen Koordinatensystem, das nur Google und Website-Eigentümern gehört.
quelle
Bitte beachten Sie, dass Google auch reCaptcha zusammen mit verwendet
Benutzer / Browser ohne Cookies eindeutig zu erkennen!
quelle