CAPTCHA 不仅仅是一个可以定义的单词;它是由九个单词(和两个介词)组成的首字母缩写:Completely Automated Public Turing Test To Tell Computers and Humans Apart(完全自动区分计算机和人类的图灵测试)。为了避免创造另一个难以发音的术语,这个冗长的短语被缩写为简洁的 CAPTCHA。
如果你是人类,绕过 CAPTCHA 并不困难。如果你是一个拥有大量自主运行账户的人类(这被称为自动化),那就更具挑战性了。你需要使用自动化工具、切换代理、购买浏览器指纹,等等——这个列表可以持续相当长的时间,有很多选项。
问题在于,没有所谓的通用解决方案。举例来说,一个从特定网站收集信息的解析器,是针对该网站在编写时所使用的特定类型 CAPTCHA 编写的。如果网站更新了其 CAPTCHA,解析器就会停止工作——更确切地说,当遇到新的 CAPTCHA 时,解析器将无法运行。
这有点混乱……让我再试一次。如果你的解析器能够绕过 reCAPTCHA V2,那么它无法绕过 reCAPTCHA V3,因为它们是不同类型的 CAPTCHA,每种都有自己需要考虑的一套独特参数。
澄清:如果你的解析器不包含所有解决方法,而只包含一种,那么上述情况适用。
再举个简单的例子:如果你试图将一个球体塞进一个立方体形状的孔中,它是塞不进去的。同样的原理适用于这里。
现在让我们深入探讨 CAPTCHA 的类型,以及识别它们所需的条件。
为什么以及需要绕过 CAPTCHA 的是什么,谁会帮助完成这项工作?
对于了解这个主题的人来说,这是一个相当简单的问题;对于不熟悉的人来说,则要复杂得多。看起来,一个浏览互联网的用户想要在某处注册或下载某些东西,弹出一个 CAPTCHA——他们解决它,然后继续他们的工作。就是这样。
对于日常的互联网浏览,这些信息完全无用。然而,对于那些处理自动化任务、测试网络资源负载、解析数据以及执行类似任务的人来说,了解 CAPTCHA 的类型至关重要,因为这可以节省大量时间。
因此,绕过 CAPTCHA 对以下人员很重要:
- 自动化人员:那些自动执行常规任务的人,在某些资源上重复的操作会触发 CAPTCHA。
- 测试人员:在设置网络资源安全性时,必须预见各种场景,包括机器人流量的涌入。为了在未来防范这种情况,必须现在模拟这种涌入。
- 脚本或解析器开发者:手动收集信息需要大量时间,即使是从自己的网络资源,更不用说竞争对手的了。任何拥有信息的资源都会保护自己免于过载,包括使用 CAPTCHA。
谁来帮助绕过 CAPTCHA? 最熟练的程序员不需要任何人的帮助;他们可以训练自己的模型来解决 CAPTCHA,或者使用代理(循环使用代理可以完全防止 CAPTCHA 的出现)。
对于那些不能或不想费心的人来说,CAPTCHA 解决服务可以提供帮助。它们有几种类型:
- 手动 CAPTCHA 解决服务(市场上只有两个)
- 自动 CAPTCHA 解决服务(有更多这样的服务)
- OCR(光学字符识别,一种更早的版本,属于前一点的子类型)
手动识别更昂贵,但提供接近 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
图片和视觉 CAPTCHA —— 绕过图片中的 CAPTCHA
这一类别包括最受欢迎的两个 CAPTCHA:reCAPTCHA V2 和 hCaptcha,它们存在于 70-80% 的网站上。虽然它们的解决原理不同,但操作逻辑有些相似。
- reCAPTCHA V2:使用图片,需要选择对象(例如汽车)。它考虑用户的行为,如鼠标移动和点击。
- hCaptcha:与 reCAPTCHA 类似,使用图片选择,分析点击和延迟。
除了需要点击特定对象或图片的标准任务外,每个 CAPTCHA 都会分析用户行为。在每种情况下,这些因素的集合是不同的,优先级也可能不同。只有开发防机器人保护的公司才确切知道这些细节;我们只能通过评估鼠标移动或延迟的重要性来推断。
这一类别中较不常见的 CAPTCHA 是 Rotate CAPTCHA。在这里,你需要将图像旋转到正确的位置。这个 CAPTCHA 在解决过程中考虑用户操作的准确性。
行为和不可见 CAPTCHA —— 解决你看不见的 CAPTCHA
这是一种完全不同类型的 CAPTCHA,分析用户行为而无需显式交互。然而,重要的是要理解,CAPTCHA 的不可见部分只是冰山一角。如果系统判断用户(或机器人)不符合合法访问者的标准,他们将被提示解决另一个(可见的)CAPTCHA,这可能是任何类型的——文本、交互式等。
不可见 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。它们可能与原始的图灵测试没有任何共同点,而是向用户提供复杂或简单的任务。
- 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 识别服务起着重要作用,在许多情况下,两者都是必不可少的。