Cloudflare Turnstile/Challenge

Hướng dẫn sử dụng API Giải Captcha Cloudflare Turnstile của anticaptcha.top

Cloudflare Turnstile/Challenge là một loại captcha khá mới gần giống với reCAPTCHA và hCaptcha và trông giống như sau:

1. Tìm Sitekey của Captcha Cloudflare

Đầu tiên, bạn cần tìm giá trị của tham sốsitekey trong mã nguồn của trang web chứa Captcha Cloudflare. Mở bảng điều khiển dành cho nhà phát triển trong trình duyệt của bạn và tìm phần tử có thuộc tínhsitekey

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

POST : https://anticaptcha.top/in.php

Các tham số Body:

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

Kiểu dữ liệu

Bắt buộc

Mô tả

key

String

x

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

method

String

x

Giá trị: turnstile

sitekey

String

x

Sitekey Cloudflare Turnstile cần view code url chứa Cloudflare Turnstile để lấy sitekey

pageurl

String

x

url của webpage hiển thị Cloudflare Turnstile mà bạn muốn giải Ví dụ: https://demo.turnstile.workers.dev https://turnstile.zeroclover.io

action

String

Bắt buộc truyền nếu là giải dạng Cloudflare Challenge. Giá trị tùy chọn của tham số action bạn tìm thấy trên trang, có thể được xác định trong thuộc tính data-action hoặc được chuyển đến lệnh gọi Turntile.render

data

String

Bắt buộc truyền nếu là giải dạng Cloudflare Challenge. Giá trị của cData được truyền cho lệnh gọi Turnstile.render. Cũng có thể được định nghĩa trong thuộc tính data-cdata

pagedata

String

Bắt buộc truyền nếu là giải dạng Cloudflare Challenge. Giá trị của chlPageData được truyền cho lệnh gọi Turntile.render

useragent

String

Bắt buộc truyền nếu là giải dạng Cloudflare Challenge. User-Agent của trình duyệt của bạn. Chỉ sử dụng các trình duyệt hiện đại và hệ điều hành Windows. Chúng tôi khuyên bạn nên sử dụng các phiên bản được phát hành trong 6 tháng qua Ví dụ: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36

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/in.php
Content-Type: application/json
Cloudflare Turndtile:
{
	"key": "YOUR_API_KEY",
	"method": "turnstile", // id cho Cloudflare Turnstile
	"sitekey": "0x4AAAAAAAEwzhD6pyKkgXC0", // thay bằng sitekey của bạn
	"pageurl": "https://turnstile.zeroclover.io", // thay bằng url của bạn
	"useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" // thay bằng useragent của bạn
	........ // các trường dữ liệu khác nữa nếu có
}

Cloudflare Challenge:
{
	"key": "YOUR_API_KEY",
	"method": "turnstile", // id cho Cloudflare Turnstile
	"sitekey": "0x4AAAAAAAEwzhD6pyKkgXC0", // thay bằng sitekey của bạn
	"pageurl": "https://turnstile.zeroclover.io", // thay bằng url của bạn
	"useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36", // thay bằng useragent của bạn
	"action": "managed",
	"data": "874291f4retD1366", // thay bằng url của bạn
	"pagedata": "HUHDWUHuhuwfiweh32..uh2uhuhyugYUG="
	........ // các trường dữ liệu khác nữa nếu có
}

Kết quả trả về/Response

dạng text: OK|[id]
Ví dụ: OK|24380238

dạng JSON
{
	"status": 1,
	"request": "24380427", //task id
}

3. Lấy kết quả giải captcha/Response

GET : https://anticaptcha.top/res.php

Các tham số Body:

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

Kiểu dữ liệu

Bắt buộc

Mô tả

key

String

x

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

id

String

x

Task id trả về ở bước 1

json

Integer

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

GET HTTP
Url: https://anticaptcha.top/res.php?key=[apikey của bạn]&id=[task id]&json=1

Kết quả trả về/Response

{
	"status": 0,
	"request": "CAPCHA_NOT_READY",
	"message": "CAPTCHA đang xử lý"
}

4. Code mẫu

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://anticaptcha.top/in.php");
var content = new StringContent("{\r\n    \"key\": \"[api key]\",\r\n    \"method\": \"turnstile\",\r\n    \"sitekey\": \"0x4AAAAAAAEwzhD6pyKkgXC0\",\r\n    \"pageurl\": \"https://turnstile.zeroclover.io\"\r\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

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

Định vị phần tử có name là cf-turnstile-response và đưa giá trị token giải ra vào phần tử đó rồi submit form.

Ngoài ra, có thể có một callback được định nghĩa trong lệnh gọi Turntile.render

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

Last updated