博客

网络犯罪分子如何绕过 CAPTCHA

 缩略图
2017 年 7 月 12 日发布


CAPTCHA(用于区分计算机和人类的完全自动化公共图灵测试)最初是为了防止机器人、恶意软件和人工智能(AI)与网页交互而设计的。 在 90 年代,这意味着防止垃圾邮件机器人。 如今,各个组织都试图使用 CAPTCHA 来防止诸如撞库攻击之类的更为险恶的自动攻击。

然而,几乎就在 CAPTCHA 推出的同时,网络犯罪分子就开发出了有效的方法来绕过它。 好人用“强化”的 CAPTCHA 做出回应,但结果仍然是一样的:试图阻止自动化的测试被自动化规避了。

有多种方法可以破解 CAPTCHA。 一种常见的方法是使用 CAPTCHA 解决服务,该服务利用发展中国家低成本的人力来解决 CAPTCHA 图像。 网络犯罪分子订阅了 CAPTCHA 解决方案服务,该服务通过 API 简化到他们的自动化工具中,并在目标网站上填充答案。 这些不正当的企业无处不在,只需谷歌搜索就能找到很多,其中包括:

  • 死亡验证码
  • 2验证码
  • 科洛蒂巴布洛
  • 专业打字员
  • 反门

本文将使用 2Captcha 来演示攻击者如何集成该解决方案来策划撞库攻击攻击。

2验证码

访问 2Captcha.com 网站后,浏览者会看到下面的图片,询问访问者是否想要 1) 为 2Captcha 工作或 2) 购买 2Captcha 作为服务。

网络犯罪分子如何绕过 CAPTCHA

选项 1 – 为 2Captcha 工作

要为 2Captcha 工作,只需注册一个帐户,提供一个电子邮件地址和 PayPal 帐户用于支付存款。 在测试期间,帐户只需几分钟即可得到验证。

新员工必须参加一次性培训课程,学习如何快速解决验证码。 它还提供了一些提示,例如何时大小写重要,何时不重要。 在以足够的准确度完成培训后,工人就可以开始赚钱了。

网络犯罪分子如何绕过 CAPTCHA

选择“开始工作”后,工人将进入工作区屏幕,如上图所示。 然后向工人提供 CAPTCHA 并提示他们提交解决方案。 一旦正确解答,钱就会存入电子“钱包”,工人可以随时请求付款。 工作区中出现的 CAPTCHA 数量似乎无穷无尽,这表明对该服务的需求稳定。

网络犯罪分子如何绕过 CAPTCHA

2Captcha 工作人员有动力提交正确的解决方案,就像 Uber 司机有动力提供优质服务(客户评级)一样。 2Captcha 客户对他们收到的 CAPTCHA 解决方案的准确性进行评分。 如果 2Captcha 员工的评级低于某个阈值,她将被踢出平台。 相反,在需求低迷时期,评级最高的员工将获得 CAPTCHA 分配优先权,从而获得奖励。

选项 2 – 2Captcha 即服务

要使用 2Captcha 作为服务,客户(即攻击者)需要将 2Captcha API 集成到她的攻击中以创建数字供应链,自动从目标站点提供 CAPTCHA 难题并接收输入到目标站点的解决方案。

2Captcha 提供了有用的示例脚本来生成不同编程语言的 API 调用,包括 C#、JavaScript、PHP、Python 等。 用 Python 编写的示例代码如下所示:

网络犯罪分子如何绕过 CAPTCHA

将 2CAPTCHA 集成到自动攻击中

攻击者如何在撞库攻击攻击中使用 2Captcha? 下图展示了 CAPTCHA 绕过过程中不同实体之间的交互方式:

网络犯罪分子如何绕过 CAPTCHA

技术流程:

  1. 攻击者从目标站点请求用于嵌入 CAPTCHA 图像的 CAPTCHA iframe 源和 URL,并将其保存在本地
  2. 攻击者从 2Captcha 网站请求 API 令牌
  3. 攻击者使用 HTTP POST 将 CAPTCHA 发送到 2Captcha 服务并接收 Captcha ID,该 ID 是归属于提交给 2Captcha 的 CAPTCHA 图像的数字 ID。 在步骤 5 中,该 ID 用于向 2Captcha 发出 API GET 请求,以检索已解决的 CAPTCHA。
  4. 2Captcha 将 CAPTCHA 分配给一名工作人员,然后工作人员解决该问题并将解决方案提交给 2Captcha。
  5. 攻击者编写脚本,使用 CAPTCHA ID ping 2Captcha(每 5 秒一次,直到解决)。 然后,2Captcha 发送已解决的 CAPTCHA。 如果解决方案仍在解决中,攻击者将收到来自 2Captcha 的帖子,指示“CAPTCHA_NOT_READY”,并且程序会在 5 秒后再次尝试。
  6. 攻击者向目标网站发送登录请求,其中包含填写好的字段(即从被盗列表中获取的一组凭证)以及 CAPTCHA 解决方案。
  7. 攻击者对每个 CAPTCHA 图像重复此过程。

结合 Selenium 或 PhantomJS 等网络测试框架,攻击者可以以类似人类的方式与目标网站进行交互,有效绕过许多现有的安全措施来发起撞库攻击攻击。

货币化和犯罪生态系统

有了如此优雅的解决方案,金融生态系统将会是什么样的,各方又如何赚钱?

盈利: 验证码求解器

担任 CAPTCHA 解答者的工作远非有利可图。 根据 2Captcha 网站提供的指标,可以计算出以下支出:

假设每个 CAPTCHA 需要 6 秒,则工人每分钟可以提交 10 个 CAPTCHA,每小时可以提交 600 个 CAPTCHA。 一天 8 小时内,有 4800 个 CAPTCHA。 根据我们作为 2Captcha 员工试用期间的收入(每个解决方案大约 0.0004 美元),这相当于每天 1.92 美元。

对于发达国家的个人来说,这是浪费时间,但对于那些生活在每天几美元就能花得相当远的地方的人来说,CAPTCHA 解决服务是一种简单的赚钱方式。

盈利: 攻击者

攻击者向第三方 2Captcha 支付 1000 个 CAPTCHA 解决方案的费用。 攻击者对解决方案进行竞价,每包支付 1 至 5 美元。

许多攻击者使用 CAPTCHA 解析服务作为更大规模撞库攻击攻击的一部分,因此这种花费是合理的。 例如,假设攻击者正在发起攻击,在目标网站上测试来自 Pastebin 的一百万个凭据。  在这种情况下,攻击者需要使用每组凭证绕过一个 CAPTCHA,这将花费大约 1000 美元。  假设凭证重用的成功率为 1.5%,攻击者可以接管超过 15,000 个账户,这些账户都可以货币化。

盈利: 2验证码

2Captcha 按每 1000 个 CAPTCHA 向攻击者收取报酬。 如上所述,客户(即攻击者)每 1000 个 CAPTCHA 支付 1 至 5 美元。 然后,2Captcha 等服务会从出价中抽取一定比例,并将剩余部分分配给他们的人工员工。 由于 CAPTCHA 解决服务被大规模用作解决方案,因此利润相当可观。 即使 2Captcha 每解决 1000 个 CAPTCHA 只能获得 1 美元,他们每解决一捆 CAPTCHA 至少也能净赚 60 美分。 这些网站的所有者通常本身就在发展中国家,因此看似较低的收入其实很可观。

谷歌的 Invisible reCAPTCHA 怎么样?

今年3月,谷歌发布了其reCAPTCHA的升级版本,名为“Invisible reCAPTCHA”。 与要求所有用户点击臭名昭著的“我不是机器人”按钮的“无 CAPTCHA reCAPTCHA”不同,Invisible reCAPTCHA 允许已知人类用户通过,同时仅向可疑用户提供 reCAPTCHA 图像挑战。

您可能会认为这会让攻击者感到困惑,因为他们无法看到自己何时受到测试。 然而,就在谷歌推出 Invisible reCAPTCHA 的第二天,2CAPTCHA就发表了一篇博客文章,介绍如何击败它。

Google 是通过检查浏览器的 cookie 来确定用户是否是人类的,即用户是否曾经访问过所请求的页面。 如果同一个用户开始使用新设备或最近清除了缓存,Google 就不会拥有该信息,因此被迫发出 reCAPTCHA 挑战。

攻击者要想使用 2Captcha 自动撞库攻击攻击,就需要保证 CAPTCHA 挑战。 因此,绕过 Invisible reCAPTCHA 的一种方法是在攻击脚本中添加一行代码,该代码在每次请求时清除浏览器,从而保证可解决的 reCAPTCHA 挑战。

Invisible reCAPTCHA 稍微棘手的地方在于 CAPTCHA 挑战是隐藏的,但有一个解决方法。 可以使用“检查元素”浏览器工具来“找到”验证码。 因此,攻击者可以向 2Captcha 发送一个 POST,其中包含一个详细说明隐藏 CAPTCHA 位置的参数。 一旦攻击者从 2Captcha 收到 CAPTCHA 解决方案,就可以通过以下两种方式之一通过自动化方式击败 Invisible reCAPTCHA:

  1. JavaScript 操作调用函数来为页面表单提交提供已解析的令牌
  2. 直接在网页中更改 HTML 代码,用已解决的令牌输入替换一段正常的 CAPTCHA 代码。

Invisible reCAPTCHA 可以被绕过,并不是因为新版 CAPTCHA 的设计存在致命缺陷。 只要知道通过条件,任何逆向图灵测试本质上都是可以被击败的。

只要有 CAPTCHA,就会有像 2Captcha 这样的服务,因为经济利益正中犯罪分子的下怀。 利用低成本的人力可以最大限度地降低经营成本,并使网络犯罪分子获取高达数百万美元的利润。 而且世界上总会存在劳动力成本低廉的地区,因此持续的需求确保了 2Captcha 的持续供应。

世界不需要开发更好的 CAPTCHA,因为整个方法都有根本的局限性。 相反,我们应该承认这些局限性,并在传递条件未知或至少攻击者难以确定的情况下实施防御。

来源

霍姆斯,塔玛拉 E. “预付卡和礼品卡统计数据。” 信用卡.com 。 Creditcards.com,2015 年 12 月 1 日。 网络。

亨特,特洛伊。 “利用自动化人类破解 CAPTCHA。” 博客文章。 特洛伊·亨特。 特洛伊·亨特,2012 年 1 月 22 日。 网络。

本山、马蒂、基里尔·列夫琴科、克里斯·卡尼奇和斯蒂芬·萨维奇。 关于: CAPTCHA——在经济背景下理解 CAPTCHA 解决服务。 第 19 届 USENIX 安全研讨会论文集,华盛顿特区。印刷版。