我不是机器人:谷歌最新版验证码系统ReCaptcha破解已开源

简介: 每个人都讨厌验证码,这些恼人的图片中包含你必须输入的字符,我们只有正确地填写才能继续访问网站。验证码旨在确认访问者是人还是程序,并防止恶意程序的入侵。然而,随着深度学习和计算机视觉技术的发展,现在这些认证方法可以被我们轻松破解了。

选自 Github

作者:George Hughey

机器之心编译

每个人都讨厌验证码,这些恼人的图片中包含你必须输入的字符,我们只有正确地填写才能继续访问网站。验证码旨在确认访问者是人还是程序,并防止恶意程序的入侵。然而,随着深度学习和计算机视觉技术的发展,现在这些认证方法可以被我们轻松破解了。

在这一个项目中,作者破解了最新版的 ReCaptcha,并开源了所有代码。不过项目作者声明:「这份代码能够解决最新版的 ReCaptcha,但仅限于在自己网站上使用,且仅用于教育目的。」

项目地址:
https://github.com/ecthros/uncaptcha2

reCAPTCHA 项目是由卡内基梅隆大学开始构建的系统,这个项目将从书本上扫描下来、无法被 OCR 准确识别的文字显示在 CAPTCHA 问题中,从而判断访问者到底是程序还是人类。自 2014 年以来,reCAPTCHA 改为在「我不是机器人」(I'm not a robot)的方框中打勾,进而完成判别。

这个名为 unCaptcha 的项目最早创建于 2017 年 4 月,并在当时实现了 85% 的 ReCaptcha 对抗率。不过后来谷歌发布了新版本的 ReCaptcha,且新版的 ReCaptcha 主要有以下两个主要改进:

更好的浏览器自动检测使用短语语音而不是数字

这些改进最开始成功地防御了第一版 unCaptcha 的攻击,然而到了 18 年 6 月份,这些挑战基本都已被解决。本项目的作者同样与 ReCaptcha 团队取得了联系,他们完全了解这次攻击。此外,ReCaptcha 团队还允许该项目作者发布 unCaptcha2 的代码,尽管它目前仍然能有效破解 ReCaptcha 验证码。

unCaptcha2 简介

由于 ReCaptcha 添加了语音形式的验证码识别,破解 ReCaptcha 比以前变得更加容易。因为我们只需要调用一个免费的语音识别 API,对所有验证码的识别准确率就能达到 90% 左右。另外由于 ReCaptcha 会阻止浏览器自动化引擎 Selenium,unCaptcha2 会使用屏幕点击器(clicker)移动到屏幕上特定的像素,从而像人一样浏览网页。当然在模拟人类浏览的过程中,每一个新用户的坐标都需要更新,这个目前并不是太鲁棒。

unCaptcha2 的方法非常简洁:

导航至谷歌的 ReCaptcha 演示网站导航至 ReCaptcha 的语音库下载语音使用语音识别 API 识别语音解析 API 返回的参数和识别结果提交识别结果,判断是否成功

如下所示 unCaptcha2 的测试界面:

image

如何使用 unCaptcha2

因为 unCaptcha2 必须指定屏幕上的特定坐标,因此我们必须基于设置更新坐标。这些坐标更新的代码写在了 run.py 文件的最上面。在 Linux 系统中,使用命令行 xdotool getmouselocation—shell 可以定位鼠标在屏幕上的坐标位置。

我们还需要配置到底使用哪一个语音识别 API,国内的 BAT、讯飞和搜狗等都提供高效的语音识别 API,而国外的谷歌、微软和 IBM 也一样。谷歌、微软和 IBM 的的 API 结构都已经在 queryAPI.py 中,我们只需要配置用户名和密码就行了。如果你要使用谷歌 API,我们需要使用谷歌应用的证书参数配置环境变量 GOOGLE_APPLICATION_CREDENTIAL。

最后,安装剩下的依赖项就能愉快地破解了:pip install -r dependencies.txt。

阅读更多

阿里内部的那个牛逼带闪电的Java诊断工具终于开源了

一招教你打造一个滑动置顶的视觉特效

NDK项目实战—高仿360手机助手之卸载监听

(Android)面试题级答案(精选版)

相信自己,没有做不到的,只有想不到的

如果对技术开发比较感兴趣,欢迎关注一起交流和学习!

相关实践学习
一键创建和部署高分电影推荐语音技能
本场景使用天猫精灵技能应用平台提供的技能模板,在2-5分钟内,创建一个好玩的高分电影推荐技能,使用模板后无须代码开发,系统自动配置意图、实体等,新手0基础也可体验创建技能的乐趣。
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
8月前
|
机器人 区块链
区块链数字货币量化交易系统机器人开发合约源码定制详情
event BuyOrderPlaced(address user, uint256 price, uint256 amount); event SellOrderPlaced(address user, uint256 price, uint256 amount);
|
3月前
|
机器人 PHP
QQ云端机器人登录系统php源码
QQ云端机器人登录系统php源码
178 4
|
6月前
|
算法 机器人
秒合约期权机器人开发/秒合约系统/币币合约/技术开发应用
秒合约期权机器人开发/秒合约系统/币币合约/技术开发应用
|
2月前
|
传感器 监控 安全
植保机器人,尤其是无人机喷雾系统
植保机器人,尤其是无人机喷雾系统
23 1
|
8月前
|
存储 数据采集 算法
巡检机器人之仪表识别系统
巡检机器人—— 数字表计识别、指针表计识别。
131 0
巡检机器人之仪表识别系统
|
4月前
|
机器人 TensorFlow 算法框架/工具
量化交易机器人系统开发详细策略/需求步骤/逻辑方案/源码设计
auto nhwc_data = nhwc_Tensor->host<float>(); auto nhwc_size = nhwc_Tensor->size(); ::memcpy(nhwc_data, image.data, nhwc_size);
|
4月前
|
机器学习/深度学习 传感器 前端开发
重磅发布!伟景智能推出人形机器人专用立体视觉系统ViEye
伟景智能凭借在工业级立体相机和人形机器人领域多年的技术积累和产品研发,推出了专为人形机器人设计的专业视觉系统——ViEye。搭载这一视觉系统后,伟景智能的人形机器人操作系统实现了“眼到手到”的全面覆盖,完美结合了平面视觉、立体视觉和机械手控制。该系统旨在为人形机器人提供精准且全面的视觉信息,解决了机器人“脑、眼、手”协同融合的难题,为机器人赋予了高精度的感知能力,使其能够更有效地应用于各种场景。这一创新将有助于提升人形机器人在实际应用中的性能和效果。
|
7月前
|
机器人 Python
现货量化机器人合约跟单交易所系统开发关键逻辑源代码实例
# 定义一个交易策略类 class TradingStrategy: def __init__(self, symbol, interval): self.symbol = symbol self.interval = interval self.engine = QuantEngine()
|
8月前
|
人工智能 机器人 UED
ai智能语音机器人系统都有什么功能?
第一、 智能AI电销机器人的并发量是多少啊?别人可以同时呼出几个? 通常情况下,智能AI电销机器人可以根据客户的需要选择客户需要的外呼并发量,最大可以实现一条宽带,一个主机,可以同时保持客户使用的灵活性,即能兼顾效率,也能兼顾成本控制。 第二、可以转人工?对话时可以打断机器人吗? 转人工和中途打断都是可以的,这些都是电话机器人的基本功能,个人不建议您用转人工的功能,因为每次转人工,机器人都要等到这通转接人工通话结束后才会进行下一通的呼出,这就大大降低了机器人的拨打效率了。所以留给后续人工跟进是最合理的。打断功能是客户说任何内容都能打断的,为了保证一个良好的用户体验度,一些无意义的语气
|
8月前
|
机器人 新制造
MES系统在机器人行业生产管理中的运用
简单介绍一下MES系统在机器人行业生产管理中的运用

热门文章

最新文章