跳转到主要内容
获取令牌时遇到问题吗
联系支持

AmazonTask | AWS WAF 验证码与挑战

解决 AWS WAF 中的验证码和挑战

更多相关内容,请访问我们的博客
警告!

此任务将使用我们的代理服务器执行。

可能的验证码变体。

请求参数

选项 1

type<string>required

AmazonTaskProxyless


websiteURL<string>required

网站地址。解决验证码的主页面地址。


websiteKey<string>required

验证码的主页面地址。在渲染验证码时,可以在 apiKey 字段中找到。


captchaScript<string>required

链接到 HTML 页面上的 jsapi.js,形式为 <Integration URL>/jsapi.js


cookieSolution<boolean>optional

默认为false。如果需要 “aws-waf-token ”cookie,则指定值为true。否则,您将得到 “验证码_凭证 ”和 “现有令牌 ”的响应。

选项 2

type<string>required

AmazonTaskProxyless


websiteURL<string>required

解决验证码的主页地址


challengeScript<string>required

challenge.js 的链接(请参阅表格下方的描述)。


captchaScript<string>optional

到 captcha.js 的链接(如果只是挑战,可能会丢失)


websiteKey<string>required

可以从带有验证码的 HTML 页面或通过执行 window.gokuProps.key的 JavaScript 脚本中检索到的字符串。


context<string>required

可以从带有验证码的 HTML 页面或通过执行 window.gokuProps.context的 JavaScript 脚本中检索到的字符串。


iv<string>required

可以从带有验证码的 HTML 页面或通过执行 window.gokuProps.iv的 JavaScript 脚本中检索到的字符串。


cookieSolution<boolean>optional

默认为 false。如果需要使用名为 "aws-waf-token" 的 cookie,请指定值为 true。否则,您将得到 "captcha_voucher" 和 "existing_token"。

如何获取 websiteKey、context、iv 和 challengeScript 参数

当您访问一个网站时,您可能会收到一个 405 响应和一个带有验证码的 HTML 页面。您可以从这个页面获取所有参数:

任务创建方法

选项 1

POST
https://api.capmonster.cloud/createTask

要求

{
"clientKey": "API_KEY",
"task": {
"type": "AmazonTaskProxyless",
"websiteURL": "https://example.com/index.html",
"websiteKey": "h15hX7brbaRTR...Za1_1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
"captchaScript": "https://234324vgvc23.yejk.captcha-sdk.awswaf.com/234324vgvc23/jsapi.js",
"cookieSolution": true
}
}

回应

{
"errorId":0,
"taskId":407533072
}

选项 2

POST
https://api.capmonster.cloud/createTask

要求

{
"clientKey": "API_KEY",
"task": {
"type": "AmazonTaskProxyless",
"websiteURL": "https://example.com",
"challengeScript": "https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/challenge.js",
"captchaScript": "https://41bcdd4fb3cb.610cd090.us-east-1.captcha.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/captcha.js",
"websiteKey": "AQIDA...wZwdADFLWk7XOA==",
"context": "qoJYgnKsc...aormh/dYYK+Y=",
"iv": "CgAAXFFFFSAAABVk",
"cookieSolution": true
}
}

回应

{
"errorId":0,
"taskId":407533072
}

获取任务结果方法

使用getTaskResult方法获取 AmazonTask 的解决方案。

POST
https://api.capmonster.cloud/getTaskResult

要求

{
"clientKey":"API_KEY",
"taskId": 407533072
}

回应

{
"errorId":0,
"status":"ready",
"solution": {
"cookies": {
"aws-waf-token": "10115f5b-ebd8-45c7-851e-cfd4f6a82e3e:EAoAua1QezAhAAAA:dp7sp2rXIRcnJcmpWOC1vIu+yq/A3EbR6b6K7c67P49usNF1f1bt/Af5pNcZ7TKZlW+jIZ7QfNs8zjjqiu8C9XQq50Pmv2DxUlyFtfPZkGwk0d27Ocznk18/IOOa49Rydx+/XkGA7xoGLNaUelzNX34PlyXjoOtL0rzYBxMAQy0D1tn+Q5u97kJBjs5Mytqu9tXPIPCTSn4dfXv5llSkv9pxBEnnhwz6HEdmdJMdfur+YRW1MgCX7i3L2Y0/CNL8kd8CEhTMzwyoXekrzBM="
},
"userAgent": "userAgentPlaceholder"
}
}

使用 SDK 库

// https://github.com/ZennoLab/capmonstercloud-client-js

import { CapMonsterCloudClientFactory, ClientOptions, AmazonProxylessRequest } from '@zennolab_com/capmonstercloud-client';

document.addEventListener('DOMContentLoaded', async () => {
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: '<your capmonster.cloud API key>' }));
console.log(await cmcClient.getBalance());

const amazonRequest = new AmazonProxylessRequest({
websiteURL: 'https://example.com',
websiteKey: 'websiteKey',
challengeScript: 'https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/challenge.js',
captchaScript: 'https://41bcdd4fb3cb.610cd090.us-east-1.captcha.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/captcha.js',
context: 'qoJYgnKsc...aormh/dYYK+Y=',
iv: 'CgAAXFFFFSAAABVk',
});

console.log(await cmcClient.Solve(amazonRequest));
});