如何绕过 CAPTCHA:用最简单的术语解析复杂的过程

160 阅读9分钟

CAPTCHA 不仅仅是一个可以定义的单词;它是由九个单词(和两个介词)组成的首字母缩写:Completely Automated Public Turing Test To Tell Computers and Humans Apart(完全自动区分计算机和人类的图灵测试)。为了避免创造另一个难以发音的术语,这个冗长的短语被缩写为简洁的 CAPTCHA。

如果你是人类,绕过 CAPTCHA 并不困难。如果你是一个拥有大量自主运行账户的人类(这被称为自动化),那就更具挑战性了。你需要使用自动化工具、切换代理、购买浏览器指纹,等等——这个列表可以持续相当长的时间,有很多选项。

问题在于,没有所谓的通用解决方案。举例来说,一个从特定网站收集信息的解析器,是针对该网站在编写时所使用的特定类型 CAPTCHA 编写的。如果网站更新了其 CAPTCHA,解析器就会停止工作——更确切地说,当遇到新的 CAPTCHA 时,解析器将无法运行。

这有点混乱……让我再试一次。如果你的解析器能够绕过 reCAPTCHA V2,那么它无法绕过 reCAPTCHA V3,因为它们是不同类型的 CAPTCHA,每种都有自己需要考虑的一套独特参数。

澄清:如果你的解析器不包含所有解决方法,而只包含一种,那么上述情况适用。

b98b63b5ba55c0a184b2aaa72ac64610.jpeg

再举个简单的例子:如果你试图将一个球体塞进一个立方体形状的孔中,它是塞不进去的。同样的原理适用于这里。

现在让我们深入探讨 CAPTCHA 的类型,以及识别它们所需的条件。

为什么以及需要绕过 CAPTCHA 的是什么,谁会帮助完成这项工作?

对于了解这个主题的人来说,这是一个相当简单的问题;对于不熟悉的人来说,则要复杂得多。看起来,一个浏览互联网的用户想要在某处注册或下载某些东西,弹出一个 CAPTCHA——他们解决它,然后继续他们的工作。就是这样。

对于日常的互联网浏览,这些信息完全无用。然而,对于那些处理自动化任务、测试网络资源负载、解析数据以及执行类似任务的人来说,了解 CAPTCHA 的类型至关重要,因为这可以节省大量时间。

因此,绕过 CAPTCHA 对以下人员很重要:

  • 自动化人员:那些自动执行常规任务的人,在某些资源上重复的操作会触发 CAPTCHA。
  • 测试人员:在设置网络资源安全性时,必须预见各种场景,包括机器人流量的涌入。为了在未来防范这种情况,必须现在模拟这种涌入。
  • 脚本或解析器开发者:手动收集信息需要大量时间,即使是从自己的网络资源,更不用说竞争对手的了。任何拥有信息的资源都会保护自己免于过载,包括使用 CAPTCHA。

谁来帮助绕过 CAPTCHA? 最熟练的程序员不需要任何人的帮助;他们可以训练自己的模型来解决 CAPTCHA,或者使用代理(循环使用代理可以完全防止 CAPTCHA 的出现)。

1661353455_preview_1648314619_14-kartinkof-club-p-negr-dumaet-mem-16.jpg

对于那些不能或不想费心的人来说,CAPTCHA 解决服务可以提供帮助。它们有几种类型:

手动识别更昂贵,但提供接近 100% 的准确性(一分钱一分货)。相比之下,自动识别服务可能更便宜,但质量可能不尽如人意。在绕过复杂的 CAPTCHA 时,它们可能完全无用。OCR 通常用于绕过文本 CAPTCHA,无法处理最新一代的 CAPTCHA。

现在,让我们探讨 CAPTCHA 的类型。

按类型绕过 CAPTCHA 及其区别

有几种类型的 CAPTCHA,它们在复杂性和通过它们所需考虑的因素数量上各不相同。

列出每个 CAPTCHA 会很繁琐,所以我尝试将它们分类,以下是我的结果:

图片和视觉 CAPTCHA

  • reCAPTCHA V2
  • hCaptcha
  • GeeTest CAPTCHA
  • Rotate CAPTCHA

行为和不可见 CAPTCHA

  • reCAPTCHA V3
  • Cloudflare Turnstile

文本 CAPTCHA

  • 简单 CAPTCHA
  • 亚马逊 CAPTCHA

音频 CAPTCHA

  • 音频 CAPTCHA

其他交互式 CAPTCHA

  • CyberSiARA
  • atbCAPTCHA
  • GeeTest CAPTCHA
  • MTCaptcha
  • CutCaptcha
  • 腾讯 CAPTCHA
  • Lemin CAPTCHA

1470171517_image.jpg

图片和视觉 CAPTCHA —— 绕过图片中的 CAPTCHA

这一类别包括最受欢迎的两个 CAPTCHA:reCAPTCHA V2 和 hCaptcha,它们存在于 70-80% 的网站上。虽然它们的解决原理不同,但操作逻辑有些相似。

  • reCAPTCHA V2:使用图片,需要选择对象(例如汽车)。它考虑用户的行为,如鼠标移动和点击。
  • hCaptcha:与 reCAPTCHA 类似,使用图片选择,分析点击和延迟。

除了需要点击特定对象或图片的标准任务外,每个 CAPTCHA 都会分析用户行为。在每种情况下,这些因素的集合是不同的,优先级也可能不同。只有开发防机器人保护的公司才确切知道这些细节;我们只能通过评估鼠标移动或延迟的重要性来推断。

这一类别中较不常见的 CAPTCHA 是 Rotate CAPTCHA。在这里,你需要将图像旋转到正确的位置。这个 CAPTCHA 在解决过程中考虑用户操作的准确性。

行为和不可见 CAPTCHA —— 解决你看不见的 CAPTCHA

这是一种完全不同类型的 CAPTCHA,分析用户行为而无需显式交互。然而,重要的是要理解,CAPTCHA 的不可见部分只是冰山一角。如果系统判断用户(或机器人)不符合合法访问者的标准,他们将被提示解决另一个(可见的)CAPTCHA,这可能是任何类型的——文本、交互式等。

img-2024-09-27-11-09-23.png

不可见 CAPTCHA 包括:

  • reCAPTCHA V3:在没有直接交互的情况下分析页面上的操作并分配风险评分。它使用从 0 到 1 的用户评分,根据管理员的设置,要么让用户通过,要么继续用可见的 CAPTCHA 挑战他们。
  • Cloudflare Turnstile:使用设备和网络数据进行验证,无需用户干预。它被认为比前一种类型更复杂,因为如果不可见 CAPTCHA 认为你是机器人,那么可见的挑战将更加困难。

文本 CAPTCHA —— 几乎免费地解决 CAPTCHA

最简单的 CAPTCHA 类型——需要输入到指定字段的文本。尽管它很简单,但这种 CAPTCHA 曾经有多个复杂级别。它可能考虑空格、区分大小写、包含数字或特殊字符等。但事实是,与其他类型相比,绕过文本 CAPTCHA 非常直接。

廉价的 OCR 服务曾被用于绕过文本 CAPTCHA。为什么说“曾”?因为现在很少遇到文本 CAPTCHA,已经有许多免费的解决方案来绕过它们,不需要付费。

在解决此类 CAPTCHA 时考虑的主要参数是文本输入的正确性。因此,对于自动化人员来说(如果需要自动化文本 CAPTCHA 识别),任务是简单的。

然而,文本 CAPTCHA 并没有轻易放弃,亚马逊 CAPTCHA 的存在就是证明。是的,亚马逊 CAPTCHA 类似于简单的 CAPTCHA,通常使用文本和数字,但问题在于这些数字和字母被扭曲了。如果系统不满意,难度级别就会增加,从文本 CAPTCHA 切换到更高级的验证方法。

音频 CAPTCHA —— 如何通过听觉绕过 CAPTCHA

最初是为方便视力受损的用户而开发的,如果系统怀疑用户,可以让他们通过 CAPTCHA。音频 CAPTCHA 的原理是,用户听取音频并输入听到的文本,考虑声音识别的准确性。音频 CAPTCHA 的存在使得绕过复杂的 CAPTCHA 成为可能。用户(或机器人)可以简单地切换到音频,转录它,然后通过 CAPTCHA。

其他交互式 CAPTCHA —— 当绕过 CAPTCHA 像在玩游戏

这一类别包括各种使用非标准方法来验证你是人类的 CAPTCHA。它们可能与原始的图灵测试没有任何共同点,而是向用户提供复杂或简单的任务。

11-X4q2FHiCc84YA_rfbPdDz9Xw-1920.jpg

  • CyberSiARA:呈现特殊任务,如拼图或对象选择,并分析行为。
  • atbCAPTCHA:涉及元素操作的交互式任务,考虑操作的准确性。
  • GeeTest CAPTCHA:基于拖动拼图或其他对象的任务。系统考虑鼠标移动、反应时间和用户行为来判断是否是机器人。GeeTest 根据行为的可疑性积极调整任务。
  • MTCaptcha:使用涉及对象选择和图像操作的任务,分析交互时间和准确性。
  • CutCaptcha:需要裁剪或移动图像的部分,考虑动作的精确性。
  • 腾讯 CAPTCHA:提供拼图和移动任务,记录动作的准确性和流畅性。Lemin CAPTCHA:包括迷你游戏和对象选择任务,分析行为和反应时间。

如何解决每种类型的 CAPTCHA?

如果每个 CAPTCHA 都能以相同的方式解决,那就太简单了。我决定根据它们的解决方法对 CAPTCHA 进行分类,以下是我的发现:

使用令牌解决 CAPTCHA

用于需要获取特殊响应令牌以进行确认的 CAPTCHA。解决方案很简单:你将 CAPTCHA 发送到识别服务,他们会返回一个令牌。你在需要的地方插入这个令牌,CAPTCHA 就被认为已解决。

使用此方法的 CAPTCHA 包括:

  • reCAPTCHA V2
  • reCAPTCHA V3
  • hCaptcha
  • Cloudflare Turnstile

通过文本输入绕过 CAPTCHA

这涉及从图像中识别文本并输入它。你将 CAPTCHA 图像发送到服务,他们返回文本,你将其输入到所需字段中。

此方法适用于:

  • 亚马逊 CAPTCHA
  • 文本 CAPTCHA

使用坐标法解决 CAPTCHA

你向服务提供所需的参数。解决 CAPTCHA 后,服务会向你发送坐标及其顺序,你需要使用它们来绕过 CAPTCHA。该方法并不完美,但很受欢迎,因为对于某些复杂的 CAPTCHA,它可能比使用令牌更有效。

使用此方法的 CAPTCHA 包括:

  • GeeTest CAPTCHA
  • Click CAPTCHA
  • Draw Around
  • Capy Puzzle CAPTCHA

有些 CAPTCHA 可以使用多种方法解决——令牌或坐标。最可靠的方法是使用令牌解决,但可能更复杂。使用坐标可能更简单,但并不总是有效。

在使用坐标的情况下,你不会得到保证 CAPTCHA 已通过的现成答案,而是获得一种绕过它的方法,你仍然需要自己实现绕过(或者由你的机器人实现)。

因此,CAPTCHA 可以使用不同的方法和途径来解决。技术技能或选择正确的 CAPTCHA 识别服务起着重要作用,在许多情况下,两者都是必不可少的。

i.webp