Scarnox · Blog

어떤 페이지에서든 캡차 sitekey 찾기 (4가지 방법)

모든 캡차 풀이는 sitekey에서 시작합니다. sitekey는 사이트가 캡차 제공업체에 등록한 공개 ID입니다. 브라우저가 이를 볼 수 있으므로 여러분도 읽을 수 있습니다. PopularCaptcha의 sitekey는 a5f74b19-9e45-40e0-b45d-47ff91b7a6c2 같은 UUID입니다. 다른 제공업체는 다른 형식을 씁니다. 예를 들어 Google reCAPTCHA 키는 6L로 시작합니다. 쉬운 방법부터 가장 확실한 방법까지 네 가지 위치를 소개합니다.

Scarnox는 현재 PopularCaptcha를 풉니다. sitekey를 찾는 방법은 어떤 캡차에도 똑같이 적용되므로, 다른 유형을 준비할 때도 이 방법들이 도움이 됩니다. reCAPTCHA나 Cloudflare Turnstile 같은 다른 유형은 준비 중입니다.

1. data-sitekey 속성

DevTools를 열고(F12), Elements로 이동한 뒤 Ctrl+F를 누르고 data-sitekey를 검색하세요. 대부분의 위젯은 키를 다음과 같은 속성에 넣습니다.

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

여기서 찾았다면 끝났습니다. 값을 복사하고 풀이 단계로 넘어가세요.

2. 네트워크 탭

위젯이 JavaScript로 렌더링된다면 속성이 HTML에 전혀 나타나지 않을 수 있습니다. Network를 열고 페이지를 새로고침한 뒤 위젯의 설정 요청을 필터링하세요. PopularCaptcha에서 그 요청은 보통 checksiteconfig라는 이름입니다. sitekey는 그 요청의 쿼리 파라미터 중 하나입니다.

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

테스트하는 사이트에서 이름이 다르다면, 요청 URL에서 sitekey라는 단어로 필터링해도 됩니다.

3. iframe URL

챌린지 자체는 캡차 제공업체가 제공하는 iframe입니다. iframe의 src에는 sitekey가 파라미터로 들어 있습니다. 위젯을 오른쪽 클릭하고 Inspect를 고른 뒤, iframe 주소에서 값을 읽으세요. 페이지가 메인 문서에서 속성을 숨기고 있을 때 가장 믿을 만한 방법입니다.

4. 비가시형 위젯

비가시형 위젯에는 체크박스가 없습니다. 사이트가 자체 코드에서 위젯의 render()나 execute() 함수를 호출하고, sitekey를 인자로 넘깁니다. 페이지의 JavaScript에서 이를 검색하세요. Sources 패널을 열고 Ctrl+Shift+F를 누른 뒤 sitekey를 검색합니다. 비가시형 sitekey는 풀 때 비가시형 플래그가 필요합니다. 비가시형 캡차 풀이를 참고하세요.

스크립트로 sitekey 읽기

속성이 원시 HTML에 있다면, 브라우저 없이도 스크립트가 읽을 수 있습니다.

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

이것이 아무것도 출력하지 않는다면, 위젯은 JavaScript로 렌더링되는 것입니다. 위의 네트워크 탭 방법처럼 실제 브라우저를 사용하세요. 자동화가 허용된 페이지만 가져오고, 요청 속도는 낮게 유지하세요.

어떤 URL과 함께 보내야 할까?

위젯이 있는 페이지의 URL을 site_url로 보내세요. 중요한 것은 호스트이므로, 회원가입 위젯이라면 https://example.com/signup이 사용할 값입니다. PopularCaptcha의 완전한 요청은 다음과 같습니다.

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

이를 https://api.scarnox.com/api/tasks/create에 보내고, Authorization: Bearer 헤더에 키를 넣으세요. 호출은 토큰이 준비될 때까지 블록되므로, 결과를 확인하기 위한 두 번째 요청은 없습니다.

흔한 문제

올바른 sitekey인지 확인하기

페이지에는 sitekey가 여러 개 있을 수 있습니다. 분석 위젯, 댓글 폼, 뉴스레터 상자가 자체 키를 추가하기도 합니다. 풀기 전에 그 sitekey가 자동화하려는 폼의 것인지 확인하세요. 세 가지 빠른 점검이 도움이 됩니다.

사이트를 재배포하면 키가 바뀔 수도 있습니다. 어제 동작하던 키가 더 이상 받아들여지는 토큰을 만들지 못한다면, 다른 것을 바꾸기 전에 페이지를 다시 읽으세요. 새로 읽는 데는 비용이 들지 않으며, 갑작스러운 실패의 가장 흔한 원인을 배제할 수 있습니다.

클릭 후에야 위젯이 나타나는 페이지는 한 단계가 더 필요합니다. 페이지를 열고, 위젯을 띄우는 클릭을 수행한 뒤에야 sitekey를 읽으세요. 클릭 전에 읽으면 아무것도 나오지 않는데, 이는 위젯이 없는 것처럼 보이지만 실제로는 타이밍 문제입니다. 고정된 시간만큼 sleep하지 말고, [data-sitekey]에 맞는 요소가 나타날 때까지 기다리세요.

다음 단계

무료 체험 크레딧으로 시작하세요. 카드 등록은 필요 없습니다. 계정을 만들고 첫 sitekey를 테스트해 보세요.