UNLOCK API
Amazon AWS WAF

Amazon AWS WAF

Cách gửi tác vụ Amazon AWS WAF tới UNLOCK API bằng createTask hoặc in.php: tên loại tác vụ, mọi tham số, object solution, trường proxy và code mẫu bằng 7 ngôn ngữ.
Giá
$0.70 $0.0007 mỗi tác vụ
Bạn gửi
URL trang, site key của WAF và các giá trị iv và context từ trang challenge
Bạn nhận
Giá trị cho cookie aws-waf-token

Tổng quan và giá

Tên loại tác vụ

Dùng tên thứ nhất để giải không cần proxy. Dùng tên thứ hai và thêm các trường proxy để giải qua proxy của bạn. Giá như nhau.
AmazonTaskProxylessKhông dùng proxy
AmazonTaskQua proxy của bạn

Cũng được nhận: AntiAwsWafTaskProxyless, AntiAwsWafTask

Object task

type
StringBắt buộc
Tên loại tác vụ. Không phân biệt chữ hoa, chữ thường. AmazonTaskProxyless | AmazonTask
websiteURL
StringBắt buộc
Địa chỉ đầy đủ của trang có CAPTCHA, bắt đầu bằng http:// hoặc https://.
websiteKey
StringBắt buộc
Site key của widget CAPTCHA, tìm trong mã nguồn trang (ví dụ data-sitekey).
iv
StringBắt buộc
Giá trị iv trên trang AWS WAF.
context
StringBắt buộc
Giá trị context trên trang AWS WAF.
challengeScript
StringTùy chọn
Địa chỉ của script challenge.js.
captchaScript
StringTùy chọn
Địa chỉ của script captcha.js.

Các trường không có trong danh sách này được chuyển nguyên cho người giải.

Trường proxy

Chỉ dùng cho tên loại có proxy. Gửi các trường riêng lẻ hoặc một chuỗi proxy.
proxyType
StringBắt buộc
http, https, socks4 hoặc socks5.
proxyAddress
StringBắt buộc
Địa chỉ IP hoặc tên host của proxy.
proxyPort
IntegerBắt buộc
Cổng proxy.
proxyLogin
StringTùy chọn
Tên đăng nhập proxy, nếu proxy cần.
proxyPassword
StringTùy chọn
Mật khẩu proxy, nếu proxy cần.
proxy
String
Tất cả trường proxy trong một chuỗi, ví dụ http://user:pass@1.2.3.4:8080.

Dùng proxy

Request

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "AmazonTaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AH...",
    "iv": "CgAFRjIw2vAAABSM",
    "context": "zPT0jOl1rQlUNaldX6LUpn4D6Tl9bJ8VUQ..."
  }
}

Object solution

Trả về trong solution khi status là ready.
captcha_voucher
String
Captcha voucher của AWS WAF.
existing_token
String
Token AWS WAF. Gửi nó dưới dạng cookie aws-waf-token.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "captcha_voucher": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "existing_token": "f8ab5749-f916-4d29-91ff-a2b8c1e5d2a7:EQoAf0APpGIKAAAA..."
  },
  "cost": "0.0007",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Code mẫu

import time, requests

API = "https://unlock-api.com"
KEY = "YOUR_API_KEY"

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "AmazonTaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AH...",
      "iv": "CgAFRjIw2vAAABSM",
      "context": "zPT0jOl1rQlUNaldX6LUpn4D6Tl9bJ8VUQ..."
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

for _ in range(60):   # 60 x 5 s = the 5 minute task limit
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(f"{r['errorCode']}: {r.get('errorDescription', '')}")   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"])
        break
else:
    raise SystemExit("timed out")

Phương thức form in.php

Cùng tác vụ đó với request form kiểu cũ. res.php trả kết quả dạng văn bản.
in.php, res.php
curl -s "https://unlock-api.com/in.php" -d "key=YOUR_API_KEY&method=amazon_waf&sitekey=KEY&iv=IV&context=CONTEXT&pageurl=https://example.com/login&json=1"
# {"status":1,"request":"1001"}

curl -s "https://unlock-api.com/res.php?key=YOUR_API_KEY&action=get&id=1001&json=1"
# {"status":0,"request":"CAPCHA_NOT_READY"}  then  {"status":1,"request":"ANSWER"}

API form: in.php và res.php