AWS WAF CAPTCHA

AWS WAF 验证码识别工具:自动获取 aws-waf-token

Amazon WAF 会用图片九宫格或玩具车谜题把网站挡住,直到访客拿到 aws-waf-token Cookie 为止。CapSkip 在你自己运行的 Windows 机器上为你的脚本拿到这个 Cookie,只需一份统一月费。

Windows x64·本地运行,验证码不会离开你的电脑
  • 九宫格与玩具车谜题
  • 直接返回 aws-waf-token
  • 统一月费套餐
每月 AWS WAF 识别数量40,000
40.0k250.0k
别家按次收费,每 1,000 次约 $1.45$58.00
CapSkip Bronze,统一定价$35.00
$23.00留在你的口袋里按当前用量,每月如此

当亚马逊的 Web 应用防火墙认定某位访客像是自动化程序时,它会停止提供页面,先要求对方证明自己。这道证明就是 AWS WAF 验证码:通常是一个 3x3 图片九宫格,配有“选择所有窗帘”之类的提示和一个确认按钮;有时则是一个小谜题,需要让玩具车开到城市街道的尽头。答对了,网站就会设置 aws-waf-token Cookie;在此之前,你的爬虫或机器人看到的只有这道挑战。

CapSkip 是一款装在 Windows 桌面电脑、VPS 或服务器上的 AWS WAF 验证码识别工具。你把挑战携带的参数交给它,它就返回 HTTP 客户端继续工作所需的通行凭证,无论网站显示的是整页 405 拦截页,还是在表单中嵌入 JavaScript API 小组件。任何远程打码平台都无从得知你在处理哪些受 Amazon 保护的网站。

按量计费的服务通常每千次 AWS WAF 识别收费约 $1.45,每次重试还要再收一次钱。CapSkip 无论用量多少,都是同样的统一价格,每月 $35 起;已经为旧版 in.php / res.php API、Anti-Captcha、CapSolver 或 CapMonster 编写的工具,无需修改代码,就能把 Amazon WAF 任务发给 CapSkip。

通行凭证留在你这一边。 CapSkip 在应用运行的机器上完成 AWS WAF 验证码识别,因此你爬取的网站、挑战参数和收到的 Cookie,都不会经过任何第三方打码服务。 阅读设置指南

专为 Amazon WAF 保护的网站打造

图片九宫格和玩具车一样搞定

AWS WAF 会自己决定给访客哪一种谜题。CapSkip 既能识别“选择所有……”图片九宫格,也能识别玩具车路线谜题,你的任务绝不会因为遇到没准备好的那一种而卡住。

整页验证或嵌入式小组件

有些网站会返回一个承载挑战的 405 页面;另一些则把验证码小组件放在登录或结账表单上。两种形式使用同样的请求字段即可覆盖。

补上客户端缺少的那个 Cookie

你拿到的是 aws-waf-token Cookie 的值,或者旧版 API 返回的那一对凭证。设置好它,重新发送请求,受保护的页面就会照常加载。

现有客户端照常工作

AmazonTask、AntiAwsWafTask 以及 in.php method=amazon_waf 请求都能原样识别。在应用中选择你的代码已经在对接的服务,代码保持不变。

代理支撑真正的大批量

测试时一个地址就足够了。若要持续处理大量 AWS WAF 任务,可以为每个请求附加代理,或在应用中加载代理池,让任务分散到众多 IP 上。

重试不花一分钱

通行凭证过期、页面连问两次、一夜之间运行量翻倍:这些都不会出现在你的账单上,因为套餐按机器定价,什么都不计量。

用 CapSkip 通过 AWS WAF 验证码的三种方式

Python
from capskip import CapSkip

solver = CapSkip(host="127.0.0.1", port=8080)

# Values from the 405 page's window.gokuProps. iv and context are optional:
# leave both out and CapSkip reads them from the page itself.
result = solver.amazon_waf(
    sitekey="AQIDAHjcYu/GjX+QlghicBg...",   # gokuProps.key
    iv="CgAHbCe2GgAAAAAD",                  # gokuProps.iv
    context="zPT0jOl1rQlUNaldX6LUpn4D...",   # gokuProps.context
    url="https://example.com/products",
)

# POST this pair to the voucher endpoint beside challenge.js for the cookie.
print(result["captcha_voucher"], result["existing_token"])

在 Python 中只需一次调用:传入 window.gokuProps 中的值和页面地址,即可取回网站会转换成 aws-waf-token Cookie 的那一对凭证值。

在 Chrome 或 Firefox 中

装好 CapSkip 扩展并打开应用后,浏览时遇到的 AWS WAF 挑战页面会自动替你完成,页面随后带着 Cookie 重新加载。

通过你自己的脚本

用 Python、Node.js、PHP、C# 或任何能发请求的语言,通过普通 HTTP 发送挑战参数,片刻之后即可读回通行凭证。

通过现有客户端

已经以受支持的格式向打码服务提交 AWS WAF 任务的工具,可以改为指向 CapSkip,请求和响应都保持不变。

从安装到拿到第一个 aws-waf-token

  1. 在 Windows 上安装 CapSkip

    把应用装在负责处理 AWS WAF 流量的电脑、VPS 或服务器上。本地 API 会随应用一起启动。 下载 CapSkip

  2. 选择套餐或开始试用

    套餐按机器定价,而不是按识别次数。免费试用提供 3 天和 500 次识别,让你测试自己受 Amazon 保护的目标,无需绑卡。 比较套餐

  3. 发送你的第一个 AWS WAF 任务

    把挑战参数提交给 CapSkip,或在应用中把现有客户端切换过来;大批量时加上代理,再把返回的通行凭证设置为 aws-waf-token Cookie。 打开 API 文档

CapSkip 与按次计费的 AWS WAF 验证码识别对比

同样的 Amazon WAF 挑战,两种付费方式:本地统一价格套餐,或随每个通行凭证不断增长的账单。

功能CapSkip按次服务
计费方式月费 $35 起,识别次数不限每 1,000 次 AWS WAF 识别约 $1.45
谜题类型图片九宫格与玩具车路线谜题因服务而异
呈现形式405 拦截页与 JS-API 小组件取决于具体服务
识别在哪里运行你自己的 Windows 桌面电脑、VPS 或服务器他们的服务器,每个任务都要上传一次
通行凭证过期后的重试免费,不计次数作为新的识别再次收费
客户端代码你现有的 in.php 或 createTask 客户端,无需改动只能用他们自己的任务格式
扩大规模速度由你的硬件和代理池决定共享队列,外加按账户限制

价格

不再按次付费

选择你的授权

青铜授权

$35/ 月

订阅青铜授权

授权即时激活

按月计费,可随时在账户中取消。

功能相同,机器越多,吞吐量越大。

每台机器的识别速度都受限于它自己的 CPU 和内存。机器越多,同时运行的线程就越多:白银可同时识别两倍数量的验证码,黄金则是三倍。

  • 无限解决,无每日上限
  • 无限线程,速度随硬件提升
  • 90% 至 100% 的识别准确率
  • 可直接替代主流打码服务的 API
  • 几乎兼容任何工具,无需编写代码
  • REST API、SDK 和浏览器扩展
  • 出现新的验证码类型时免费训练
  • 在你自己的机器上运行,数据不外传

上面展示的每一种验证码类型,每个授权都支持。 查看支持范围

想先试用一下?

开始 3 天免费试用,在你自己的目标上识别 500 个任意类型的验证码。

开始免费试用

AWS WAF 验证码的工作原理,以及如何通过 API 识别

AWS WAF 是 Amazon Web Services 部署在 CloudFront 分发、负载均衡器和 API 网关前面的防火墙。网站所有者编写规则来决定如何处理每个请求,其中一种可选动作就是 CAPTCHA。规则一旦触发,访客得到的就不是请求的页面,而是一道谜题;只有解出谜题,才能拿到 aws-waf-token Cookie,让后续请求在它过期之前顺利通过。

挑战会以两种形式之一出现。常见的是拦截页:服务器返回 HTTP 状态码 405 和一个小型 HTML 页面,页面中定义了 window.gokuProps(一个 key、一个 iv 和一个 context),并从 awswaf.com 的主机加载 challenge.js 和 captcha.js。另一种是 JavaScript API:网站嵌入 jsapi.js,并用自己的 API 密钥调用 AwsWafCaptcha.renderCaptcha,于是谜题出现在表单内部,而不是替换整个页面。AWS WAF 识别工具必须两种都能接受。

谜题本身通常是图片九宫格:九张照片,一条点名日常物品的提示(比如包、床、时钟或窗帘),外加一个确认按钮。第二种要求访客驾驶玩具车穿过小镇,开到道路尽头。此外还有一个面向无障碍需求的音频选项。不管出现哪一种,你的客户端关心的结果都一样:一个有效的通行凭证,或者在旧版 API 中,页面用来换取 Cookie 的 captcha_voucher 和 existing_token 这一对值。

规模化时,先规划网络,再写代码。用单个 IP 在几个页面上试用 CapSkip 没有问题,但每天触发 AWS WAF 数千次的爬虫应当轮换使用代理池:要么加载到 CapSkip 应用中,要么通过 proxy 和 proxytype 字段随每个请求发送。让 Cookie 跟随请求它的会话,当网站又开始返回 405 时,再申请一个新的。

对于 AWS WAF 验证码,CapSkip 具体返回什么?
这取决于你的客户端使用的 API 风格。为 AntiAwsWafTask、Anti-Captcha 或 CapMonster Cookie 选项编写的客户端会直接拿到 aws-waf-token 的值。旧版 in.php / res.php 流程和 AmazonTask 返回 captcha_voucher 和 existing_token,网站会把这一对值转换成 Cookie。无论哪种,响应中的字段都和你的代码现在读取的一样。
我需要发送哪些参数?
对于 405 挑战页面:页面 URL,加上 window.gokuProps 中的 key、iv 和 context,以及 challenge.js 和 captcha.js 的地址。对于 JavaScript API 小组件:页面 URL、小组件 API 密钥和 jsapi.js 的地址。每个请求的代理都是可选的。API 文档列出了每个受支持客户端的全部字段名。
CapSkip 除了图片九宫格,也能识别玩具车谜题吗?
能。AWS WAF 会自己决定访客看到哪种谜题,“选择所有……”图片九宫格和玩具车路线谜题都能识别。你的请求无需说明网站会显示哪一种。
405 页面和 AWS WAF 验证码小组件有什么不同?
两者最终得到的是同一个 Cookie,只是出现的方式不同。405 拦截页会用挑战替换整个页面,解出后再把你送回原内容。JS-API 小组件则位于网站自己的页面中,通常在登录或结账表单上,由网站的脚本启动。两种形式的输入,CapSkip 都能接受。
大批量识别 AWS WAF 验证码需要代理吗?
测试时不需要:用你自己的网络连接就够了。生产级用量则需要。防火墙规则通常会对繁忙的地址限速或发起挑战,所以请在 CapSkip 应用中用代理池分摊任务,或随每个请求传入代理。HTTP、HTTPS 和 SOCKS 代理都支持。
我现有的 Amazon WAF 验证码代码能指向 CapSkip 吗?
通常无需任何修改。CapSkip 能响应旧版 in.php / res.php API(method=amazon_waf)、AmazonTask 和 AmazonTaskProxyless、CapSolver 的 AntiAwsWafTask,以及 Anti-Captcha 和 CapMonster 对应格式的请求。在应用中选择对应的服务,你的代码已经在发送的任务就会在本地完成。
识别一次 AWS WAF 需要多久?
大多数情况下只需几秒。不存在与其他客户共享的队列,所以耗时取决于你的机器、你的网络和所用的代理。你可以同时运行多个 AWS WAF 任务,线程数是应用里的一项设置,而不是套餐的限制。
AWS WAF 验证码为什么要选统一价格套餐,而不是按次付费?
因为 AWS WAF 通行凭证会过期,繁忙的爬虫要一次又一次地重新申请。在按次计费的服务上,每个新通行凭证都是又一笔费用,每千次约 $1.45。CapSkip 则按电脑收费:青铜套餐每月 $35 覆盖一台,免开通费,重复识别不会让账单有任何变化。

通过 AWS WAF 验证码,不再按通行凭证付费

安装 CapSkip 并登录,把 AWS WAF 挑战发送到你自己的机器上。九宫格谜题、玩具车谜题和通行凭证过期后的重试,全都包含在一份月费套餐里。