Scarnox · Blog

Herhangi bir sayfada captcha sitekey'i nasıl bulunur (4 yol)

Her captcha çözümü sitekey ile başlar: sitenin captcha sağlayıcısına kaydettiği açık tanımlayıcı. Tarayıcı bunu görebilir, siz de görebilirsiniz. PopularCaptcha için sitekey, a5f74b19-9e45-40e0-b45d-47ff91b7a6c2 gibi bir UUID'dir. Diğer sağlayıcılar farklı biçimler kullanır. Örneğin Google reCAPTCHA anahtarları 6L ile başlar. İşte en kolaydan en güvenilire doğru dört yer.

Scarnox bugün PopularCaptcha'yı çözer. Sitekey arama yöntemi herhangi bir captcha için aynı şekilde işler; bu yüzden diğer tür için planlama yaparken de bu yöntemler işinize yarar. reCAPTCHA ve Cloudflare Turnstile gibi diğer türler yakında geliyor.

1. data-sitekey özniteliği

DevTools'u açın (F12), Elements sekmesine gidin, Ctrl+F ile data-sitekey araması yapın. Çoğu widget anahtarı böyle bir öznitelikte tutar:

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

Burada bulursanız işiniz bitmiştir. Değeri kopyalayın ve çözüme geçin.

2. Network sekmesi

Widget JavaScript ile render ediliyorsa öznitelik HTML'de hiç görünmeyebilir. Network sekmesini açın, sayfayı yeniden yükleyin ve widget'ın yapılandırma isteğini filtreleyin. PopularCaptcha için bu istek genellikle checksiteconfig adını taşır. Sitekey, sorgu parametrelerinden biridir:

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

Test ettiğiniz sitede isim farklıysa istek URL'sinde sitekey kelimesiyle filtrelemek de işe yarar.

3. iframe URL'si

Captcha'nın kendisi, sağlayıcının sunduğu bir iframe'dir. Onun src değeri sitekey'i bir parametre olarak taşır. Widget'a sağ tıklayın, Inspect seçin ve değeri iframe'in adresinden okuyun. Sayfa öznitelikleri ana dokümandan sakladığında bu, en güvenilir yöntemdir.

4. Görünmez widget'lar

Görünmez bir widget'ta onay kutusu yoktur. Site, widget'ın render() ya da execute() fonksiyonunu kendi kodundan çağırır ve sitekey bir argüman olarak geçirilir. Sayfanın JavaScript'inde arayın: Sources panelini açın, Ctrl+Shift+F tuşlarına basın ve sitekey aratın. Görünmez sitekey'leri çözerken görünmez bayrağını göndermeniz gerekir. Bkz. görünmez captcha'ların çözümü.

Sitekey'i bir script'ten okumak

Öznitelik ham HTML'de varsa bir script tarayıcı olmadan okuyabilir:

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

Bu hiçbir şey yazdırmazsa widget JavaScript ile render ediliyordur. Yukarıdaki Network sekmesi yönteminde olduğu gibi gerçek bir tarayıcı kullanın. Yalnızca otomatikleştirmenize izin verilen sayfaları getirin ve istek hızınızı düşük tutun.

Hangi URL ona eşlik eder?

Widget'ın bulunduğu sayfanın URL'sini site_url olarak gönderin. Önemli olan ana makinedir (host); bu yüzden bir kayıt widget'ı için değer https://example.com/signup olur. PopularCaptcha için tam bir istek şöyle görünür:

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

Bunu https://api.scarnox.com/api/tasks/create adresine, anahtarınızı Authorization: Bearer başlığında göndererek yollayın. Çağrı token hazır olana kadar bloke olur; sonucu kontrol etmek için ikinci bir istek yoktur.

Sık karşılaşılan sorunlar

Doğru sitekey'e sahip olduğunuzu kontrol etmek

Bir sayfa birden çok sitekey içerebilir. Analitik widget'ları, yorum formları ve bülten kutuları kendi anahtarlarını ekleyebilir. Çözmeden önce, sitekey'in otomatikleştirdiğiniz forma ait olduğunu doğrulayın. Üç hızlı kontrol işe yarar:

Anahtarlar bir sitenin yeniden deploy edilmesiyle de değişebilir. Dün çalışan bir anahtar artık kabul edilen token'lar üretmiyorsa, başka bir şeyi değiştirmeden önce sayfayı yeniden okuyun. Yeniden okumanın maliyeti yoktur ve en yaygın ani hata sebebini eler.

Tıklamadan sonra yüklenen sayfalar için bir adım daha vardır. Sayfayı açın, widget'ı gösteren tıklamayı yapın ve ancak ondan sonra sitekey'i okuyun. Tıklamadan önce okumak hiçbir şey döndürmez; bu, eksik bir widget gibi görünür ama aslında bir zamanlama sorunudur. Sabit bir süre beklemek yerine [data-sitekey] ile eşleşen bir öğenin görünmesini bekleyin.

Sonraki adımlar

Ücretsiz deneme kredisiyle, kredi kartı gerekmeden başlayın: hesap oluşturun ve ilk sitekey'inizi test edin.