ANTICAPTCHA.TOP - API Docs - V2
  • Hướng dẫn
  • Sử dụng API
    • API lấy số dư tài khoản
    • API lấy dịch vụ
    • API giải captcha
      • Image to Text - Captcha dạng ảnh
      • Shopee Slide Captcha
      • ReCAPTCHA V2
      • ReCAPTCHA V2 Enterprise
      • ReCAPTCHA V3
      • ReCAPTCHA V3 Enterprise
      • Cloudflare Turnstile/Challenge
      • GeeTest Captcha V3
      • GeeTest Captcha V4
      • Amazon AWF
      • TikTok (kéo thả - Web)
      • TikTok (chọn 2 đối tượng - Web)
      • TikTok (xoay đối tượng - Web)
  • Extension cho trình duyệt
    • Extension AntiCaptcha.top cho Chrome/Cốc Cốc
    • Extension AntiCaptcha.top cho Firefox
Powered by GitBook
On this page
  • 1. Tìm các tham số của Captcha Amazon AWF
  • 2. Tạo yêu cầu/Request
  • 3. Nhận kết quả trả về/Response
  • 4. Code mẫu
  • 5. Sử dụng kết quả nhận được
  • Lưu ý: Nên sử dụng phần mềm PostMan để kiểm tra chạy test trước
  1. Sử dụng API
  2. API giải captcha

Amazon AWF

Hướng dẫn sử dụng API giải Captcha Amazon AWF của anticaptcha.top

PreviousGeeTest Captcha V4NextTikTok (kéo thả - Web)

Last updated 1 month ago

1. Tìm các tham số của Captcha Amazon AWF

Mở developer's console của browser và tìm các tham số mà bạn cần

2. Tạo yêu cầu/Request

POST : https://anticaptcha.top/api/captcha

Các tham số Body:

Tên trường dữ liệu

Kiểu dữ liệu

Bắt buộc

Mô tả

apikey

String

x

Key duy nhất để xác định đối tác API

type

Interger

x

Giá trị: 25

pageurl

String

x

websitekey

String

Giá trị của tham số key trong page source Khi truy cập pageurl mà status code trả về là 405, thì sẽ cần truyền tham số này

context

String

Giá trị của tham số context trong page source Khi truy cập pageurl mà status code trả về là 405, thì sẽ cần truyền tham số này

iv

String

Giá trị của tham số iv trong page source Khi truy cập pageurl mà status code trả về là 405, thì sẽ cần truyền tham số này

captcha_script

String

url của captcha.jsscript Khi truy cập pageurl mà status code trả về là 405 hoặc 202, thì sẽ cần truyền tham số này

challenge_script

String

url của challenge.jsscript Khi truy cập pageurl mà status code trả về là 405 hoặc 202, thì sẽ cần truyền tham số này

json

Integer

0: server sẽ trả về dạng text (mặc định) 1: server sẽ trả về dạng JSON

proxy

String

Định dạng ip:port:username:password Nếu truyền dạng này thì ko cần truyền các trường dữ liệu proxy ở dưới nữa

proxyType

String

Kiểu Proxy: http https socks5

proxyAddress

String

địa chỉ IP hoặc hostname của Proxy Ví dụ: 103.124.95.45

proxyPort

String

Proxy port Ví dụ: 8686

proxyLogin

String

Username proxy nếu có

proxyPassword

String

Password proxy nếu có

userAgent

String

User-Agent của trình duyệt của bạn sẽ được sử dụng để tải captcha. Chỉ sử dụng User-Agent của các trình duyệt hiện đại

POST HTTP
Url: https://anticaptcha.top/api/captcha
Content-Type: application/json

{
	"apikey": "YOUR_API_KEY",
	"type": 25, // captcha id của Amazon AWF
	"pageurl": "https://norway-meetup.aws.wslab.no/" // thay bằng url của bạn
	//"websitekey": "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AELMN914s+NREyTdDq+z5QWAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMVlzjBMUDRma8BC83AgEQgDuUR5Y++wlUGjJqHI2OBTqF2S2iH2DWQZZo1TIAFZjova9h/qRPwfsySRco2sTpGUC+k1LbCr9KsBJCLA==", // thay bằng key amazon awf của bạn
	//"context": "eUbRs0dztvKIT9wrTG/8r7ox/cyaWTixaHgTTPhbEtFXMurNl8noKwPWzeNjP6CYZ/sqnftiHcH6RvqJyzC8Uj21nPG3ej8cBSS+xm+qzEJFhDUvvrD2o8HSfbKVXzLidKkG1HmjA5Ymw+z5wld1LOK6Y5wAkVWQiPDEBpN7asbnRs6UZeFvJ6tElh9ID+NvMAn4isDLer6XMn8FTOQR5tFyYKje1sa+xOGHOOG5l5Gy4icXuHDG8wWKjA/o4BHjAWKmH8Tu2tR0j08aUjvtbVfSzQtxtmOBKTNd7Q02VO7LJMdcboyGdD/L07oxJj7f8M2gX2rX6wOtmC4Y7EYI47TQ/TSN", // thay bằng context của bạn
	//"iv": "EkQvKQB+S1AAAAqc", // thay bằng iv của bạn
	//"captcha_script": "https://1127390e2833.de01b5d8.us-west-1.captcha.awswaf.com/1127390e2833/1755d2d50619/cad127e790dc/captcha.js", // thay bằng url captcha_script của bạn
	//"challenge_script": "https://1127390e2833.de01b5d8.us-west-1.token.awswaf.com/1127390e2833/1755d2d50619/cad127e790dc/challenge.js" // thay bằng url challenge_script của bạn
	........ // các trường dữ liệu khác nữa nếu có
}

3. Nhận kết quả trả về/Response

Kết quả trả về dạng JSON gồm các trường sau

Tên trường dữ liệu

Kiểu dữ liệu

Mô tả

success

boolean

Mã thông báo xác định kết quả của bước gửi captcha qua POST

true: Thành công false: Thất bại

message

String

Thông báo tương ứng nếu có

captcha

String

kết quả giải ra = cookie dùng để vượt Amazon AWF captcha

base64img

String

Không dùng đến

{
	"success": true,
	"message": "Thành công",
	"captcha": "223d1f60-0e9f-4238-ac0a-e766b15a778e:EQoAf0APpGIKAAAA:AJam3OWpff1VgKIJxH4lGMMHxPVQ0q0R3CNtgcMbR4VvnIBSpgt1Otbax4kuqrgkEp0nFKanO5oPtwt9+Butf7lt0JNe4rZQwZ5IrEnkXvyeZQPaCFshHOISAFLTX7AWHldEXFlZEg7DjIc=", //kết quả cookie giải ra
	"base64img": null
}
{
	"success": false,
	"message": null,
	"captcha": null,
	"base64img": null
}

hoặc

{
	"success": false,
	"message": "Số xu không đủ",
	"captcha": ""
}

hoặc

{
	"success": false,
	"message": "Api key không chính xác",
	"captcha": ""
}

4. Code mẫu

public class CatpchaResult
{
    public string log { get; set; }
    public bool status { get; set; }
    public string catcha { get; set; }
}
public class AnticaptchaTopApi
{
    public string apiKey = "";
    public string Post(string url, object data, string method = "POST")
    {
        int num = 0;
        NameValueCollection values;
        while (num < 1)
        {
            try
            {
                using (WebClient webClient = new WebClient())
                {
                    values = new NameValueCollection();
                    if (data != null)
                    {
                        data.GetType().GetProperties().ToList().ForEach(delegate (PropertyInfo pi)
                        {
                            values.Add(pi.Name, (pi.GetValue(data, null) ?? "").ToString());
                        });
                        byte[] bytes = webClient.UploadValues(url, method, values);
                        return Encoding.UTF8.GetString(bytes);
                    }
                    return webClient.DownloadString(url);
                }
             }
            catch
            {                
            }
        }
        return "";
    }
    public CatpchaResult GetCatpcha(int type=25,string websitekey,string pageurl,string context,string iv,string captcha_script,string challenge_script)
    {
        var data = new
        {
            apikey = apiKey,
            type = type,
            websitekey = websitekey,
            pageurl = pageurl,
            context = context,
            iv = iv,
            captcha_script = captcha_script,
            challenge_script = challenge_script
        };
        var rs = new CatpchaResult
        {
            status = false
        };
        try
        {
            var result = JsonConvert.DeserializeObject<dynamic>(Post("https://anticaptcha.top/api/captcha", data));
            if (result.success == true)
            {
                rs.status = true;
                rs.catcha = result.captcha;
                rs.log = result.message;
            }
        }
        catch
        {
        }
        return rs;
    }
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://anticaptcha.top/api/captcha",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"apikey\"\r\n\r\n[apikey]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"type\"\r\n\r\n25\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"websitekey\"\r\n\r\nAQIDAHjcYu/GjX+QlghicB...\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"pageurl\"\r\n\r\n[url chứa amazon awf captcha]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--; name=\"context\"\r\n\r\neUbRs0dztvKIT9wrTG...\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--; name=\"iv\"\r\n\r\nEkQvKQB+S1AAAAqc\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--; name=\"captcha_script\"\r\n\r\n[url của captcha_script]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--; name=\"challenge_script\"\r\n\r\n[url của challenge_script]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
  CURLOPT_HTTPHEADER => array(
    "cache-control: no-cache",
    "content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
var form = new FormData();
form.append("apikey", "[apikey]");
form.append("type", "25");
form.append("websitekey", "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+...");
form.append("pageurl", "[url chứa amzon awf captcha]");
form.append("context", "eUbRs0dztvKIT9wrTG/8r7ox/cyaWTi...");
form.append("iv", "EkQvKQB+S1AAAAqc");
form.append("captcha_script", "[url của captcha_script]");
form.append("challenge_script", "[url của challenge_script]");

var settings = {
  "async": true,
  "crossDomain": true,
  "url": "https://anticaptcha.top/api/captcha",
  "method": "POST",
  "headers": {
    "cache-control": "no-cache"
  },
  "processData": false,
  "contentType": false,
  "mimeType": "multipart/form-data",
  "data": form
}

$.ajax(settings).done(function (response) {
  console.log(response);
});

5. Sử dụng kết quả nhận được

Sau khi giải captcha thành công, bạn cần tạo cookie aws-waf-token và thêm giá trị cookie mà bạn nhận được từ kết quả vào.

Lưu ý: Nên sử dụng phần mềm PostMan để kiểm tra chạy test trước

url của webpage hiển thị Captcha mà bạn muốn giải Ví dụ:

https://norway-meetup.aws.wslab.no