2026-02-26 16:00:53
谷歌最新版ReCaptcha验证码系统已被名为unCaptcha2的项目破解且代码开源,但仅限教育目的及个人网站使用。以下是关于该项目的详细介绍:
项目背景:随着深度学习和计算机视觉技术的发展,传统验证码的防御机制逐渐被突破。unCaptcha2项目针对谷歌最新版ReCaptcha系统实现了破解,其前身unCaptcha在2017年4月创建时已达到85%的对抗率,而新版通过改进浏览器自动检测和语音验证码等机制提升了安全性,但最终仍被unCaptcha2攻破。
作者声明:项目作者明确表示,代码仅限用于教育目的,且仅能在自己网站上测试使用,禁止用于非法或恶意用途。

ReCaptcha系统的演进
早期版本:由卡内基梅隆大学开发,通过展示书本扫描的难以被OCR识别的文字,区分人类与程序。
2014年改版:引入“我不是机器人”勾选框,结合用户行为分析(如鼠标移动轨迹、点击模式)进行判别。
新版改进:
浏览器自动化检测:阻止Selenium等自动化工具模拟人类操作。
语音验证码升级:使用短语语音替代数字,增加识别难度。
unCaptcha2的破解方法
核心原理:利用语音验证码的漏洞,结合屏幕点击模拟人类行为。
具体步骤:
导航至ReCaptcha演示网站:定位目标页面。
下载语音验证码:通过点击语音按钮获取音频文件。
语音识别API调用:使用免费API(如谷歌、微软、IBM)将语音转换为文本,准确率达90%。
结果提交与验证:解析API返回的参数并提交,判断是否破解成功。
模拟人类行为:通过屏幕点击器(如xdotool)移动鼠标至特定坐标,规避浏览器自动化检测。但需手动更新坐标,鲁棒性有限。
技术实现细节
坐标定位:在Linux系统中,通过命令行工具xdotool getmouselocation—shell获取鼠标坐标,并更新至run.py文件。
API配置:支持国内外多家语音识别服务(如谷歌、微软、IBM、讯飞、搜狗),需在queryAPI.py中配置用户名、密码或证书参数(如谷歌API需设置环境变量GOOGLE_APPLICATION_CREDENTIAL)。
依赖安装:运行命令pip install -r dependencies.txt安装所需库。
项目现状与影响
ReCaptcha团队回应:已了解攻击方式,但允许代码发布,可能因教育价值或认为防御需持续升级。
局限性:
坐标模拟不鲁棒:需针对不同屏幕分辨率手动调整坐标,易因环境变化失效。
API依赖风险:免费API可能有调用限制或准确率波动,影响破解稳定性。
伦理与法律风险:尽管作者声明仅限教育用途,但代码开源可能被滥用于恶意爬虫、刷票等场景,需谨慎对待。
使用建议
严格遵守声明:仅在个人网站或教育实验中使用,避免触犯法律。
技术探索方向:可研究其模拟人类行为的策略(如鼠标轨迹生成)或语音识别优化方法,但需确保合规性。
防御视角参考:网站开发者可借鉴其攻击思路,测试自身验证码系统的鲁棒性,并升级防御机制(如结合多因素验证、行为分析等)。