UNLOCK API
Amazon AWS WAF

Amazon AWS WAF

Comment envoyer une tâche Amazon AWS WAF à UNLOCK API avec createTask ou in.php : noms du type de tâche, tous les paramètres, l'objet solution, les champs proxy et des exemples de code dans 7 langages.
Prix
$0.70 $0.0007 par tâche
Vous envoyez
URL de la page, clé du site WAF et valeurs iv et context de la page de challenge
Vous recevez
Valeurs pour le cookie aws-waf-token

Présentation et prix

Noms du type de tâche

Utilisez le premier nom pour résoudre sans proxy. Utilisez le second nom et ajoutez les champs proxy pour résoudre via votre propre proxy. Le prix est le même.
AmazonTaskProxylessSans proxy
AmazonTaskVia votre proxy

Également accepté: AntiAwsWafTaskProxyless, AntiAwsWafTask

Objet tâche

type
StringObligatoire
Nom du type de tâche. Reconnu quelle que soit la casse. AmazonTaskProxyless | AmazonTask
websiteURL
StringObligatoire
Adresse complète de la page où apparaît le CAPTCHA, commençant par http:// ou https://.
websiteKey
StringObligatoire
La clé du site du widget CAPTCHA, visible dans le code source de la page (par exemple data-sitekey).
iv
StringObligatoire
La valeur iv de la page AWS WAF.
context
StringObligatoire
La valeur context de la page AWS WAF.
challengeScript
StringFacultatif
Adresse du script challenge.js.
captchaScript
StringFacultatif
Adresse du script captcha.js.

Les champs qui ne figurent pas ici sont transmis au résolveur tels qu'envoyés.

Champs proxy

Uniquement pour le nom de type avec proxy. Envoyez soit les champs séparés, soit une seule chaîne proxy.
proxyType
StringObligatoire
http, https, socks4 ou socks5.
proxyAddress
StringObligatoire
Adresse IP ou nom d'hôte du proxy.
proxyPort
IntegerObligatoire
Port du proxy.
proxyLogin
StringFacultatif
Nom d'utilisateur du proxy, si le proxy en demande un.
proxyPassword
StringFacultatif
Mot de passe du proxy, si le proxy en demande un.
proxy
String
Tous les champs proxy dans une seule chaîne, par exemple http://user:pass@1.2.3.4:8080.

Utiliser un proxy

Requête

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..."
  }
}

Objet solution

Renvoyé dans solution quand status vaut ready.
captcha_voucher
String
captcha voucher AWS WAF.
existing_token
String
Token AWS WAF. Envoyez-le comme 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
}

Exemples de code

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")

Méthode formulaire in.php

La même tâche avec la requête de formulaire classique. res.php renvoie la réponse en texte.
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 formulaire : in.php et res.php