这篇文章是指Google ReCaptcha v2(不是最新版本)
最近谷歌推出了一个简化的"验证码"验证系统(视频),使用户只需点击它即可通过"验证码".
但是,如何通过点击将机器人与人区分开来?
根据这个答案,(假设一个类似的实现),首先"recaptcha"生成一个隐藏的密钥,并将其附加到一个隐藏的输入元素,并懒惰地呈现一个复选框(不是一个实际的复选框,input
但a div
)具有相同的密钥,单击时,向Google后端服务器发送异步请求(XHR),将其标记为有效的验证密钥(即在提交表单时必须验证的密钥).
但是为什么机器人不能自动点击(至少是基于浏览器的机器人)?
这怎么可行?
已发布一篇新文章,其中包含针对reCAPTCHA的多项测试:
https://www.blackhat.com/docs/asia-16/materials/asia-16-Sivakorn-Im-Not-a-Human-Breaking-the-Google-reCAPTCHA-wp.pdf
一些亮点:
通过将Cookie保持活动状态+9天(通过使用Google资源浏览网站),您只需点击复选框即可传递reCAPTCHA;
根据每个IP的请求没有限制;
浏览器的用户代理必须是真实的,Google会针对您的环境运行测试,以确保它与用户代理匹配;
谷歌测试浏览器是否可以渲染画布;
屏幕分辨率和鼠标事件不会影响结果;
谷歌已经修复了cookie漏洞,可能会限制一些基于IP的行为.
另一个有趣的发现是,谷歌在JavaScript中运行一个VM,它会混淆reCAPTCHA的大部分代码和行为.此VM称为botguard,用于保护除reCAPTCHA之外的其他服务:
https://github.com/neuroradiology/InsideReCaptcha
2017年更新
最近的一篇论文(从8月开始)发表在WOOT 2017上,在解决noCAPTCHA reCAPTCHA音频挑战方面达到了85%的准确率:
http://uncaptcha.cs.umd.edu/papers/uncaptcha_woot17.pdf
更新2018年
谷歌正在推出reCAPTCHA v3,它看起来像是一个根据网站校准的"人类得分预测引擎".它可以安装到网站的不同页面(像Google Analytics脚本一样工作),以帮助reCAPTCHA和网站所有者在填写reCAPTCHA之前了解人类与机器人的行为.
https://www.google.com/recaptcha/intro/v3beta.html
这是猜测,但基于Google对他们使用的"风险分析引擎"的引用(http://googleonlinesecurity.blogspot.com/2014/12/are-you-robot-introducing-no-captcha.html)
我会假设它会查看您在点击之前的表现,光标如何移动到检查(有机路径/加速度),复选框的哪一部分被点击(随机位置,或每次都死在中心),浏览器指纹,Google Cookie和内容,如果检测到指纹或帐户,请点击与您的指纹或帐户关联的位置记录.
伪造"有机"行为是相当困难的,因为它会欺骗一个持续学习模式检测引擎.在不确定的情况下,它仍会提示您匹配实际的CAPTCHA字符串.
我的机器人对ReCaptcha运行良好.
我的解决方案.
让你的Bot做这个步骤:
首先编写一个人体鼠标移动功能,将鼠标像B-Spline一样移动(向我索取源代码).这是最重要的一点.
也可以使用像https://www.purevpn.com这样的VPN更好的结果
对于每个Recpatcha,请执行以下步骤:
如果您首先使用VPN交换机IP
清除所有浏览器Cookie
清除所有浏览器缓存
通过随机设置其中一个Useragent:
一个.Mozilla/5.0(兼容; MSIE 9.0; Windows NT 6.1; Trident/5.0)
湾 Mozilla/5.0(Windows NT 6.1; WOW64; rv:44.0)Gecko/20100101 Firefox/44.0
5每次使用不同的10x10 Randomrange时,使用Human Mouse Move Funktion从RandomPoint移动鼠标到我不是机器人图像
然后点击之间随机延迟
WM_LBUTTONDOWN
和
WM_LBUTTONUP
从Image Captcha获取截图
发送屏幕截图
http://www.deathbycaptcha.com
要么
https://2captcha.com
让他们解决
从captcha求解器接收到点击cooridinates后,使用您的Human Mouse移动Funktion移动并单击Recaptcha Images
使用Human Mouse Move Funktion移动并单击Recaptcha Verify按钮
在75%的所有trys Recaptcha将解决
Chears谷歌
汤姆