Scarnox · Blog

Cách tìm sitekey của captcha trên bất kỳ trang nào (4 cách)

Mọi lần giải captcha đều bắt đầu từ sitekey: mã định danh công khai mà website đã đăng ký với nhà cung cấp captcha. Trình duyệt có thể thấy nó, nên bạn cũng có thể đọc được. Với PopularCaptcha, sitekey là một UUID như a5f74b19-9e45-40e0-b45d-47ff91b7a6c2. Các nhà cung cấp khác dùng định dạng khác. Ví dụ, khóa Google reCAPTCHA bắt đầu bằng 6L. Dưới đây là bốn nơi để tìm nó, từ dễ nhất đến đáng tin cậy nhất.

Scarnox giải PopularCaptcha hiện nay. Cách tra cứu sitekey hoạt động giống nhau cho mọi captcha, nên các phương pháp này cũng hữu ích khi bạn lên kế hoạch cho loại khác. Các loại khác, như reCAPTCHA và Cloudflare Turnstile, sắp ra mắt.

1. Thuộc tính data-sitekey

Mở DevTools (F12), vào Elements, nhấn Ctrl+F và tìm data-sitekey. Hầu hết widget đặt khóa trong một thuộc tính như thế này:

<div class="h-captcha" data-sitekey="a5f74b19-9e45-40e0-b45d-47ff91b7a6c2"></div>

Nếu bạn tìm thấy nó ở đây, bạn đã xong. Sao chép giá trị và chuyển sang bước giải.

2. Tab Network

Nếu widget được render bằng JavaScript, thuộc tính có thể không bao giờ xuất hiện trong HTML. Mở Network, tải lại trang, và lọc theo yêu cầu cấu hình của widget. Với PopularCaptcha, yêu cầu đó thường có tên checksiteconfig. Sitekey là một trong các tham số truy vấn của nó:

.../checksiteconfig?v=...&host=example.com&sitekey=a5f74b19-...

Lọc theo từ sitekey trong URL yêu cầu cũng hoạt động nếu tên khác trên website bạn đang kiểm thử.

3. URL của iframe

Thử thách thật là một iframe do nhà cung cấp captcha phục vụ. Thuộc tính src của nó mang sitekey dưới dạng tham số. Nhấp chuột phải vào widget, chọn Inspect, và đọc giá trị từ địa chỉ của iframe. Đây là phương pháp đáng tin cậy nhất khi trang ẩn thuộc tính khỏi tài liệu chính.

4. Widget ẩn

Một widget ẩn không có ô đánh dấu. Website gọi hàm render() hoặc execute() của widget từ mã riêng của nó, và sitekey được truyền như một đối số. Tìm nó trong JavaScript của trang: mở panel Sources, nhấn Ctrl+Shift+F, rồi tìm sitekey. Sitekey của widget ẩn cần cờ ẩn khi bạn giải. Xem giải captcha ẩn.

Đọc sitekey từ script

Nếu thuộc tính có trong HTML thô, một script có thể đọc nó mà không cần trình duyệt:

import re
import requests

html = requests.get("https://example.com/signup", timeout=30).text
m = re.search(r'data-sitekey="([^"]+)"', html)
print(m.group(1) if m else "no data-sitekey in the raw HTML")

Nếu dòng này không in ra gì, widget được render bằng JavaScript. Hãy dùng trình duyệt thật, như phương pháp tab Network ở trên. Chỉ tải những trang bạn được phép tự động hóa, và giữ tốc độ yêu cầu thấp.

URL nào đi kèm

Gửi URL của trang chứa widget làm site_url. Host là yếu tố quan trọng nhất, nên https://example.com/signup là giá trị đúng cho widget đăng ký. Một yêu cầu đầy đủ cho PopularCaptcha trông như sau:

{
  "captcha_type": "PopularCaptchaTaskProxyless",
  "site_key": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",
  "site_url": "https://example.com/signup"
}

Gửi nó đến https://api.scarnox.com/api/tasks/create với khóa của bạn trong header Authorization: Bearer. Lời gọi bị chặn cho đến khi token sẵn sàng, nên không có yêu cầu thứ hai nào để kiểm tra kết quả.

Các vấn đề thường gặp

Kiểm tra bạn có đúng sitekey

Một trang có thể chứa nhiều sitekey. Widget phân tích, khung bình luận và hộp đăng ký bản tin đôi khi thêm khóa riêng. Trước khi giải, hãy xác nhận sitekey thuộc về form bạn đang tự động hóa. Ba kiểm tra nhanh sẽ giúp ích:

Khóa cũng có thể thay đổi khi website được triển khai lại. Nếu một khóa hoạt động hôm qua nhưng giờ không còn tạo ra token được chấp nhận, hãy đọc lại trang trước khi thay đổi gì khác. Đọc lại không tốn gì, và nó loại trừ được nguyên nhân phổ biến nhất của một lỗi đột ngột.

Các trang chỉ tải widget sau một lần nhấp cần thêm một bước. Mở trang, thực hiện cú nhấp làm hiển thị widget, rồi mới đọc sitekey. Đọc trang trước khi nhấp sẽ không trả về gì, điều này trông như thiếu widget nhưng thực ra là vấn đề thời gian. Hãy chờ một phần tử khớp với [data-sitekey] xuất hiện thay vì ngủ một khoảng thời gian cố định.

Các bước tiếp theo

Bắt đầu với tín dụng dùng thử miễn phí, không cần thẻ: tạo tài khoản và thử sitekey đầu tiên của bạn.