JavaScriptでCAPTCHA破り「Megaupload auto-fill captcha」
汎用的なものではないが、技術的には非常に興味深い代物だ。Webサイトではロボットによるクローリングを防止するためにCAPTCHAと呼ばれる仕組みを導入していることがよくある。ぐにゃぐにゃな文字で、人であれば読めるがコンピュータには読めないであろう文字を表示して人かロボットかを判別するのだ。
上に表示されている画像を解析して文字として表示するデモ
だがただ文字を画像化したくらいではOCRのような仕組みを使って読まれる可能性がある。それを示したのがMegaupload auto-fill captchaだ。
今回紹介するフリーウェアはMegaupload auto-fill captcha、MegauploadのCAPTCHAを破るGreasemonkeyだ。ソースコードは開示されているがライセンスは明記されていなかったのでご注意いただきたい。
Megaupload auto-fill captchaはGreasemonkey、つまりJavaScriptを使って画像を解析し、表示されている文字が何であるかを判別している。JavaScript単体でのデモも用意されており、そちらであればSafariなどのブラウザでも確認することができる。ただしCanvasを使っているようなので、それに対応したブラウザである必要があるだろう。
自動的に解析して入力をする
Megauploadはいわゆるファイルアップローダーサービスを提供しており、ダウンロードする際にCAPTCHAを使っている。だが、その文字は歪んでいたり何らか隠すようなこともされていないので、確かにOCRによって読めないことはなさそうだ。
そこでJavaScriptを使って画像を解析し、最も近いと思われる結果を返してくれる。解析しやすそうなMegauploadだから出来るということもあるが、それでもJavaScriptだけで達成してしまうのは驚きだ。
ちなみにMegaupload auto-fill captchaをインストールしていると自動的にCAPTCHAが解析されてダウンロード開始画面にジャンプする。これでは全くCAPTCHAの意味がない。Megauploadにすればはた迷惑だが、技術的にすばらしいソフトウェアだ。
via OCR and Neural Nets in JavaScript [John Resig]
Megaupload auto-fill captcha for Greasemonkey