这一篇将详细介绍 reCaptcha
的历史以及破解方式。
reCaptcha 的来历
一开始的时候,该项目是为了修复古籍,后来被谷歌收购,现在严重怀疑,谷歌用这个来让人免费标定数据集。
其实,这里主要是了解 reCaptcha
类型的不同。
对于,第一代的 reCaptcha v1
谷歌已经放弃,因为这一代主要是用扭曲的各种文字来验证,后来市面上已经有了成熟的破解体系,所以,谷歌放弃了。
v2
版本,主要就是大家经常见的,包括图片九宫格和语音。
另外,该版本还有隐式和显式两个版本。
- 隐式
- 人机验证没有暴漏在外面,只有提交的时候,才会出现相应的人机验证
- 显示
- 人机验证暴漏在了外面,只有验证完成才能进行下一步的操作,诸如提交之类的
v3
版本在 v2
版本的基础上加了一个行为侦测。
就是判断你的行为是不是机器人,然后其会打一个分数,根据分数标准,来判断你是否需要人机验证,以及,你人机验证的难度如何。
解决国内不能访问
为什么 reCaptcha
在国内无法正常显示?
自2014年5月27日后,Google
公司的各项服务遭到疑似来自中国官方的防火长城的恶意干扰,导致中国大陆地区的用户无法正常使用其服务的事件。自当天起,来自中国大陆的用户发现 Google
旗下的各个分站以及 Google
的其他服务(Google 搜索
、Google Play
、Gmail
等)均无法正常访问与使用,所有 google.cn
以外的 Google
服务均受影响无法使用,用户甚至无法登陆 Google
账户。然而,不同于 2009 年至 2013 年仅针对敏感时期的行为规律,六四 25 周年纪念日结束后攻击者对 Google 的干扰仍未停止。——维基百科
这个方案的原理是什么?
有很多人都不知道,reCaptcha
在国内有个镜像:recaptcha.net
。这个地址还是可以正常访问的,不受封锁的影响。
国内的站长如果想用 reCaptcha
肯定都会使用这个镜像地址。但是,国外可和国内不一样,大部分国家都没封锁 Google
,所以大部分网站的 reCaptcha
的调用清一色都是直接调用 Google
域名的。然而 Google
的域名早就在国内封的干干净净了。这就是导致国外网站中的 reCaptcha 验证码大部分在国内都加载不出来的原因了。
而 gooreplacer
的目的,就是在浏览器加载 reCaptcha
之前把加载地址换成国内的可用镜像地址(recaptcha.net
),这样就正常了。
但是这个方法有一个弱点,就是,你安装插件必须要先翻墙。这里推荐一个免费的翻墙软件。
另外,你也可以参考我的机场搭建。
OK,在这里假设你已经安装上这个插件了。只需要配置规则就好了。
点击 Add,添加下面的重定向:
www.google.com/recaptcha
recaptcha.net/recaptcha
配置完成后,图片如下
这个解决方案对哪些网站无效?
对那些使用了 Content-Security-Policy
属性的网站无效。Content-Security-Policy
属性会验证资源的地址,导致更换的镜像地址被阻止。如果你查看了 F12
,会发现很多类似下面的错误信息:
Refused to load the script ‘xxx’ because it violates the following Content Security Policy directive
上面博文的作者也提供了这个的解决思路,不过,我没有试过。
破解方法
语音方向
buster
ps: 就目前我来看到的是 buster
和 gooreplacer
插件不能共存,也就是 buster
识别不了 gooreplacer
提供的验证码,或许 buster
是通过识别 url
来确定谷歌人机验证的服务。
这个是通过破解谷歌语音的,对于 reCaptcha V2
有两种验证方式一个是九宫格图片,一个是语音,而,buster
通过对接各大语音厂商,来人工智能破解谷歌语音验证码。
虽然,这个方法足够的高效,破解高达 85%
,但是,reCaptcha
会判别异常流量导致你这个插件不能通过语音来破解。
目前,我暂时没有找到破解异常流量的方法,但是,异常流量的产生是因为这个 IP
短时间高频次的访问谷歌,导致谷歌封了这个 IP
,通常你挂了 VPN
会出现这个原因。
所以,市面上流行的方法是,组建一个 IP
池,来进行访问。
关于其他的语音破解相关的插件或者文章请看下面。
另外,我注意到,或许,语音也可以通过代码的方式进行解决,但是,现在我暂时没办法研究,具体的请参考
九宫格图片方向
ps: 2021-7-25 我现在找到了另外一个破解九宫格图片的方法,费用更低一些,但是,我还没用,现将参考资料送上,感兴趣的自己研究。
费用是 10 RMB
1000
次。
市面上已经有成熟的破解九宫格图片的方法了。其中最为出名的是
相关的参考资料
2captcha 介绍
2captcha
是由一个俄罗斯网站,其主要的作用就是破解各种验证码,其中主要业务是破解谷歌的人机验证,其原理也很简单,在积累了大量的样本后,经过深度学习已经真人的甄别,该网站已经可以 100% 的识别谷歌的人机验证,也就是,每一个谷歌的人机验证背后都有可能是一个真人在为你点击。
有的小伙伴就有疑问了,那其他人点击是不是要控制我的电脑?
非也,谷歌的人机验证举一个简单的例子
https://recaptcha.net/recaptcha/api2/anchor?ar=1&k=6LdaB7UUAAAAAD2w3lLYRQJqsoup5BsYXI2ZIpFF&co=aHR0cHM6Ly9hbGwtYWNjZXNzLndheC5pbzo0NDM.&hl=zh-CN&type=image&v=dpzVjBAupwRfx3UzvXRnnAKb&theme=light&size=normal&badge=bottomright&cb=klvq8psrifzm
其中里面的属性 k=6LdaB7UUAAAAAD2w3lLYRQJqsoup5BsYXI2ZIpFF
就是这次验证的加密方式,我们把这个参数传递给该网站,然后,网站的人根据解析谷歌规则,给我们返回解析完成的值,这个时候,我们就能够完成本次谷歌验证了。
具体的情况你可以通过该网站的 API
了解。
该网站的使用很简单,通常就是注册,打钱,使用 key。
对于 reCaptcha v2
的图片九宫格收费是 2.99
美元 1000
次,价格也是非常良心了。
使用该网站通常有两个方式,一个是通过 API
另一个是通过插件。
API 使用
这个要参考
这个,需要一定的编程功底,在我撸的一个项目中,最后虽然有返回值,但是,我们无法提交人机验证申请,所以,最后转向了插件方法。
另外,如果你要使用 api
必须先判断谷歌验证属于 v2
还是其他,然后写不同的策略,方法上麻烦一点。
插件
插件也有两个。
ReCaptcha Solver
这个是第三方弄的插件,使用也非常简单,但是有几个坏处。
- 不能和
Gooreplacer
共同使用 - 处理谷歌验证码的时候会出现白板现象
- 网络路线并不稳定
- 价格收费不透明
2Captcha Solver
这个是官方出品,使用也非常简单,并且,没有 ReCaptcha Solver
的异常,所以,优先推荐使用这个。
我目前的羊毛脚本实用的配置是
土狗云 + Gooreplacer
+ 2Captcha Solver
+ python && selenium
+ chrome
已经是非常成熟的方案了!
自建接码平台
其实,明白原理之后,我们也可以做类似 2Captcha
的接码平台。
2Captcha
主要是从低收入国家招聘过来的,但是,我看到了一个牛逼的思路。
比如,我们可以创建大家喜闻乐见的网站,然后,把我们的码对接到这个网站上,我们让浏览网站的用户,接码我们的图片,哈哈!