Ce message fait référence à Google ReCaptcha v2 (pas la dernière version)
Récemment, Google a introduit un système de vérification "captcha" simplifié ( vidéo ) qui permet aux utilisateurs de passer le "captcha" simplement en cliquant dessus.
Mais comment peut-il différencier un bot d'une personne par un simple clic?
Selon cette réponse , (en supposant une implémentation similaire), dans un premier temps "recaptcha" génère une clé cachée et l'attache à un élément d'entrée caché et rend également paresseusement une case à cocher (pas une case à cocher réelle input
mais a div
) avec la même clé qui lorsque vous cliquez dessus, envoie une demande asynchrone (XHR) aux serveurs principaux de Google pour la marquer comme une clé de vérification valide (c'est-à-dire une clé qui doit être validée lorsque le formulaire est soumis).
Mais pourquoi les robots ne peuvent-ils pas automatiser ce clic (au moins, les robots basés sur un navigateur)?
Comment cela pourrait-il fonctionner?
Réponses:
C'est de la spéculation, mais basée sur la référence de Google au "moteur d'analyse des risques" qu'ils utilisent ( http://googleonlinesecurity.blogspot.com/2014/12/are-you-robot-introducing-no-captcha.html )
Je suppose qu'il examine la façon dont vous vous êtes comporté avant de cliquer, comment votre curseur s'est déplacé sur la route (chemin organique / accélération), quelle partie de la case à cocher a été cliquée (endroits aléatoires ou morts au centre à chaque fois), navigateur empreinte digitale, cookies et contenu Google, historique de localisation des clics lié à votre empreinte digitale ou à votre compte s'il en détecte une, etc.
Il est assez difficile de simuler un comportement "organique" de telle manière qu'il tromperait un moteur de détection de modèle d'apprentissage continu. Dans les cas où il n'est pas sûr, il vous invite toujours à faire correspondre une chaîne CAPTCHA réelle.
la source
Un nouveau document a été publié avec plusieurs tests contre reCAPTCHA:
https://www.blackhat.com/docs/asia-16/materials/asia-16-Sivakorn-Im-Not-a-Human-Breaking-the-Google-reCAPTCHA-wp.pdf
Quelques faits saillants:
Google a déjà corrigé la vulnérabilité des cookies et limite probablement certains comportements basés sur les adresses IP.
Une autre découverte intéressante est que Google exécute une machine virtuelle en JavaScript qui obscurcit une grande partie du code et du comportement reCAPTCHA. Cette machine virtuelle est connue sous le nom de botguard et est utilisée pour protéger d'autres services en plus de reCAPTCHA:
https://github.com/neuroradiology/InsideReCaptcha
MISE À JOUR 2017
Un article récent (d'août) a été publié sur WOOT 2017 avec une précision de 85% dans la résolution des défis audio noCAPTCHA reCAPTCHA:
http://uncaptcha.cs.umd.edu/papers/uncaptcha_woot17.pdf
MISE À JOUR 2018
Google présente reCAPTCHA v3, qui ressemble à un "moteur de prédiction du score humain" calibré par site Web. Il peut être installé dans différentes pages d'un site Web (fonctionnant comme un script Google Analytics) pour aider reCAPTCHA et le propriétaire du site Web à comprendre le comportement des humains par rapport aux robots avant de remplir un reCAPTCHA.
https://www.google.com/recaptcha/intro/v3beta.html
la source
mouse events don't affect the results
C'est intéressant, car j'avais (et je pense que beaucoup d'autres) pensais que c'était la principale chose qui affectait les résultats. J'ai pensé sur mobile au lieu de la case à cocher, les utilisateurs ont été invités à sélectionner toutes les images qui se ressemblent à la place, car il n'y a pas de mouvements de souris sur un écran tactile. Cependant, en regardant à nouveau le billet de blog d'introduction, il semble que ce ne soit pas le cas. Peut-être que la sélection d'images est au lieu de taper du texte déformé, pas au lieu de cocher une case. Savez-vous (ou quelqu'un d'autre) si reCAPTCHA permet de simplement cocher une case sur mobile?Tab
etEnter
pour sélectionner la case à cocher, elle affichera les images captcha pour que vous puissiez les sélectionner en fonction d'un critère.Tab
etEnter
n'affichera pas l'image captcha tout le temps. La plupart du temps pressantTab
etEnter
acceptéMes Bots fonctionnent bien contre ReCaptcha.
Voici ma solution.
Laissez votre Bot faire ces étapes:
Écrivez d'abord une fonction de déplacement de la souris humaine pour déplacer votre souris comme une B-Spline (demandez-moi le code source). C'est le point le plus important.
Utilisez également pour de meilleurs résultats un VPN comme https://www.purevpn.com
Pour chaque Recpatcha, procédez comme suit:
Si vous utilisez d'abord le commutateur VPN IP
Effacer tous les cookies du navigateur
Effacer tout le cache du navigateur
Définissez l'un de ces useragents par hasard:
une. Mozilla / 5.0 (compatible; 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 Déplacez votre souris avec la fonction de déplacement de la souris humaine d'un point aléatoire vers l'image Je ne suis pas un robot à chaque fois avec une plage aléatoire 10 x 10 différente
Cliquez ensuite sur avec un retard aléatoire entre
WM_LBUTTONDOWN
et
WM_LBUTTONUP
Prendre une capture d'écran de l'image Captcha
Envoyer une capture d'écran à
http://www.deathbycaptcha.com
ou
https://2captcha.com
et laissez-les résoudre.
Après avoir reçu les cooridinates de clic du solveur captcha, utilisez votre Funktion de déplacement de la souris humaine pour déplacer et cliquer sur Recaptcha Images
Utilisez votre fonction de déplacement de souris humaine pour vous déplacer et cliquez sur le bouton de vérification Recaptcha
Dans 75% tous les trys Recaptcha seront résolus
Chears Google
À M
la source
Puis-je présenter ma supposition, car ce n'est pas une technologie ouverte.
Google dit qu'il s'agit de combiner les informations d'avant, pendant et après pour distinguer l'homme du robot. Mais je suis plus intéressé par ce dernier clic sur la case à cocher.
Disons que les données POST (CAPTCHA résolues) ont un champ appelé empreinte digitale, une chaîne calculée à partir du comportement de l'utilisateur. Je pense qu'il peut y avoir un champ sur cet emplacement de case à cocher. Je suppose que cette case à cocher est dans un système de coordonnées généré de manière aléatoire par le back-end de Google et chiffré par la clé publique de mon site. Ainsi, un robot peut "deviner / calculer" un emplacement à propos de cette zone, mais lorsque le propriétaire du site effectue la requête GET avec une clé privée pour vérifier l'identité de l'utilisateur, Google décryptera le système de coordonnées et dira si l'utilisateur clique au bon endroit. Donc, un seul clic droit possible (avec certains décalages, c'est une boîte carrée) dans ce système de coordonnées aléatoires appartenant uniquement à Google et aux propriétaires de sites.
la source
N'oubliez pas que Google utilise également reCaptcha avec
pour reconnaître de manière unique les utilisateurs / navigateurs sans cookies!
la source