Hacker News보안

헤드리스 브라우저 없이 Cloudflare CAPTCHA 풀이

원제 Cloudflare Turnstile solver library (no headless browser required)

114 포인트댓글 31
Key Point

Cloudflare의 CAPTCHA를 자동으로 우회하는 도구가 공개되면서 웹 보안과 봇 차단의 유효성 문제가 대두된다.

핵심 요약

  • cfsolve는 헤드리스 브라우저 없이 Cloudflare Turnstile 위젯과 챌린지 페이지를 풀이하는 Rust 라이브러리 및 CLI 도구다.
  • Turnstile 위젯 풀이에는 페이지 URL, 사이트키, 선택적으로 페이지 HTML이 필요하며, 챌린지 페이지는 직접 페칭하거나 HTML을 제공해야 한다.
  • 브라우저 프로필(프로필 파일과 브라우저 체크 응답 JSON)로 특정 브라우저를 흉내내며, 현재 Safari와 Chromium 프로필을 지원한다.
  • CLI 명령 예시로 주어진 페이지에서 특정 사이트키의 위젯을 풀이할 수 있고, --blank-page 옵션으로 사이트키만으로도 풀이 가능하다.
  • 라이브러리로 사용할 때는 경로 의존성과 vendor/ 내 패치된 의존성을 Cargo.toml에 추가해야 하며, Browser 객체를 로드해 여러 작업에 공유할 수 있다.
  • Turnstile 위젯은 PageSource::Navigate(페이지 로드), PageSource::Blank(사이트키만 사용), PageSource::Html(이미 로드된 페이지 HTML)로 풀이할 수 있다.
  • browser.clear()로 챌린지 페이지를 가져와 cf_clearance 쿠키를 얻을 수 있으며, 같은 IP와 User-Agent에서만 유효하다.
  • browser.solve()로 위젯 또는 챌린지 페이지를 자동 판별해 Token이나 cf_clearance를 반환할 수 있다.
  • HTTP/HTTPS/SOCKS5 프록시를 Options로 설정 가능하며, 디버그 출력을 위해 Sink를 구현할 수 있다.
  • Error::Network, Error::Rejected, Error::Challenged는 재시도 가능하고, Error::Blocked, Error::NotChallenged, Error::Config, Error::Unsupported는 재시도할 수 없다.
  • 라이선스는 MIT이나 vendor/ 내 패치된 의존성은 각각의 라이선스를 유지한다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗