PythonでhCaptcha をバイパスする
ウェブマスターの多くは、自動化から保護する手立てとしてGoogle ReCaptchaを使用しています。しかし、これは市場で手に入る唯一のソリューションというわけではありません。最も一般的な代替手段の1つはhCaptchaです。現在、DDoS対策市場のリーダーであり、現時点では主要なCDNプロバイダーの1社であるCloudflareによって使用されています。これは、もしCloudflareがあなたを疑わしいと判断した場合、遅かれ早かれhCaptchaに遭遇することを意味します。
Cloudflareは、Google ReCaptchaからIntuition MachinesのhCaptchaに移行することを発表しました。この動きは、データの機密性に関する懸念とCAPTCHAの柔軟性に大きく貢献しました。現在、攻撃に対する保護はさらに適応的です。これは、Cloudflareのすべての顧客が影響を受けます。
また、 hCaptchaは
Googleとは異なり、個人データを収集しません。
CDNが世界中に分散されているため、CAPTCHAは高速かつ完璧に動作します。
ReCaptchaと互換性があるため、移行が非常に簡単です。
障害のある方に適しています。
素晴らしいことのように聞こえますよね?しかし、CloudflareでhCaptchaを迂回することについてはどうでしょうか?
hCaptchaの高速な自動化のために、2captcha-pythonモジュールを使用します。 Python 3.xが必要で、pipでインストールできます。
pip3 install 2captcha-python
または、リポジトリをクローンすることもできますが、事前にrequestsモジュールをインストールすることを忘れないでください。
git clone https://github.com/2captcha/2captcha-python.git
準備
APIキーを送信する2Captchaクラスの新しいインスタンスを作成する必要があります。
from twocaptcha import twoCaptcha #module import
solver = 2Captcha('YOUR_API_KEY') #your 2captcha API key
CAPTCHA突破
それでは、CAPTCHA解決アルゴリズムを作成しましょう。
result = solver.hcaptcha(sitekey='10000000-ffff-ffff-ffff-000000000001',
url='https://www.site.com/page/',
proxy={
'type': 'HTTPS',
'uri': 'username:password@1.2.3.4:1234'
})
CloudflareはhCaptchaトークンの検証中にIPアドレスをチェックすることに注意してください。したがって、CAPTCHAは、送信元と同じIPアドレスから突破する必要があります。 CloudflareでhCaptchaを正常にバイパスするには、他のCAPTCHAパラメータとともにプロキシを送信する必要があります。
このコールは、CAPTCHAを迂回するトークンを返します。
{'captchaId': '64793693810', 'code': 'P0_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUz...'}
ソリューションの使用
コードからのトークンは、h-captcha-responseフィールドとg-recaptcha-response フィールドでウェブサイトに送信されます。ブラウザを使用する場合にこれを行う最も簡単な方法は、JavaScriptを使うことです。それ以外の場合は、適切なHTTPリクエストでトークンを送信します。
let submitToken = (token) => {
document.querySelector('[name=g-recaptcha-response]').innerText = token
document.querySelector('[name=h-captcha-response]').innerText = token
document.querySelector('.challenge-form').submit()
}
submitToken('TOKEN_STRING')
時間をかける価値はありそうですか?私たちは、絶対にそうだと断言します。数行のコードで多くの時間を節約できます。また、セルフホスト型ソリューションを実行することにした場合、2captchaはさらに収益性が高くなります。
Discussion