web-dev-qa-db-ja.com

Webスクレーパーを使用して事前にreCaptchaを解決する方法は?

私は現在、reCaptchaを解決しようとしているところです。受け取った提案の1つは、トークンファーミングと呼ばれる方法でした。

たとえば、別のサイトからreCaptchaトークンをファームすることが可能で、2分以内に、ファームのトークンの1つを、裏面のサイトのコードを変更して解決しようとしているサイトに適用します。

残念ながら、それを行う方法、特に裏側のサイトのコードを変更する方法について、これ以上の説明を得ることができませんでした。

誰かがプロセスについて詳しく説明したり洞察を与えたりできる場合は、専門知識を本当に感謝します。

10
user3259472

トークンファーミング/トークンハーベストについては、ここで詳しく説明しています。 https://www.blackhat.com/docs/asia-16/materials/asia-16-Sivakorn-Im-Not-a-Human-Breaking- the-Google-reCAPTCHA-wp.pdf

このホワイトペーパーで説明する「トークンファーミング」のアプローチは、次のメカニズムに基づいています。

  1. Recaptchaを使用してサイトにアクセスする各ユーザーには、recaptcha-token
  2. このトークンは、複数回のサイト訪問でユーザーを識別し、正当な(または非合法の)ユーザーをマークするために使用されます。
  3. キャプチャトークンの年齢、ユーザーの動作、ブラウザの構成などのさまざまな要因に応じて、各訪問のユーザーには、さまざまなキャプチャバージョンのいずれかが表示されるか、キャプチャがまったく表示されません。

(詳細はここのコードから抽出できます: https://github.com/neuroradiology/InsideReCaptcha

つまり、ターゲットサイト用に大量の新鮮でクリーンなトークンを作成し、9日間エージングできる場合(それが記事で判明したことです)、これらのトークンを使用して、recaptchaが表示される前にいくつかの保護されたサイトにアクセスできます。 。

私の理解では、このような新しいトークンは、問題のサイトにCookieとして渡される必要があります。

しかし、このプレゼンテーションから数日以内にグーグルがこのギャップを埋めたということをどこかで読んだことを覚えています

また、「トークンファーミング」というラベルが付けられた他の同様のアプローチもおそらく存在します。

私が知る限り、これらのアプローチはすべて、recaptchaシステムの抜け穴を悪用し、これらの抜け穴は、グーグルによって非常に迅速に閉じられました。

したがって、あなたにとってこれはおそらく学問的価値のあるものか、一般的にキャプチャシステムとトークンベースのサービスの適切な保護について学ぶためのものです。

更新

いくつかのrecaptchaで保護されたサイトを簡単に確認すると、現在のシステムはcookieをスクランブルしていることがわかりましたが、recaptcha-tokenは、recaptchaフォームで、部分的に異なる値とid = "recaptcha-token"を持つ2つの非表示の入力要素として見つかります。

クリーンなブラウザでこのようなページにアクセスすると、新しいrecaptchaトークンが取得されます。これを保存して、後で必要に応じて同じフォームに挿入できます。 少なくとも理論上はそうです。すべてのCookieとブラウザに長期保存されたものがあると、これができなくなる可能性が非常に高いです。

8