我不是机器人:谷歌最新版验证码系统ReCaptcha破解已开源-阿里云开发者社区

开发者社区> 程序员小鱼> 正文

我不是机器人:谷歌最新版验证码系统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)面试题级答案(精选版)

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

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
仿酷狗音乐播放器开发日志二十三 修复Option控件显示状态不全的bug(附源码)
转载请说明原出处,谢谢~~          整个仿酷狗工程的开发将近尾声,现在还差选项设置窗体的部分,显然在设置窗体里用的最多的就是OptionUI控件,我在写好大致的布局后去测试效果,发现Option控件的显示效果很不理想。
846 0
仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)
转载请说明原出处,谢谢        今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI做得,所以产生这几个bug的原因还在于他们两个,在《仿酷狗音乐播放器开发日志十一 ——CTreeNodeUI的bug修复》中已经修复过一个动态添加控件的相关bug,这属于第二次修复了。
1019 0
C#使用系统的“显示桌面”功能(Shell.Application)
原文 C#使用系统的“显示桌面”功能(Shell.Application) 在 Windows 系统的 任务栏 上的 快速启动栏 里,通常有一个图标  ,点击这个图标,就会切换到桌面。这个图标实际是一个 “Windows Explorer Command” ,用记事本打开这个文件,我们看到如下的内容: [Shell] Command=2 IconFile=explorer.
846 0
MeeGo系统1.2版本新组件
  MeeGo 1.2发行版确定加入了一些新组建。  关于这些组建的讨论请到这个网站:http://wiki.meego.com/Architecture#Upcoming_Features   下面是对这些组建的简短介绍,关于这些组建的文档随后会在这个网页贴出:http://wiki.
710 0
逐渐取代CVS的新一代版本控制系统Subversion
一、CVS与SVN性能的比较      今天看到这个测试结果,效果惊人阿,尤其是在分支合并处理上。Action                                        CVS               SVN Check out small file set       1 MB 17.
811 0
开源数据同步神器——canal
作为使用最广泛的数据库,如何将mysql的数据与中间件的数据进行同步,既能确保数据的一致性、及时性,也能做到代码无侵入的方式呢?如果有这样的一个需求,数据修改后,需要及时的将mysql中的数据更新到elasticsearch,我们会怎么进行实现呢?
9326 0
+关注
程序员小鱼
6年Android开发大神,决心做更有成就感的事情,于是有这个公众号【终端研发部】,谈的是产品,谈的是技术,更谈的是人生,一条执着于技术+职场经验之路,从人工智能Python, Android、NDK,等FFmpeg音视频解码 ,致力于做东半球最优秀的程序员!
28
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载