ページにアクセスしたユーザーのGoogleアカウント登録メールアドレスを特定する方法


Googleアカウントのメールアドレスは、Googleの提供する各種サービスで共通して用いるメールアドレスで利用場面は多いものです。ウェブ開発者のトム・アンソニーさんが、Googleがリダイレクト用に添付するパラメータを利用して、ページにアクセスしたユーザーのGoogleアカウント用メールアドレスを特定できる手法をブログで公開しています。

How to confirm a Google user's specific email address (Bug Bounty Submission) - Tom Anthony
http://www.tomanthony.co.uk/blog/confirm-google-users-email/

Googleのログインページでは、ログインしたあとにトップページではなく元のページが表示されるようリダイレクトするためにURLに「continue」パラメーターを渡すことがよくあります。当然、すでにGoogleアカウントにログイン済みのユーザーの場合には、continueパラメーター内の特定URLに直接リダイレクト処理されることになります。


この挙動を利用すれば、ユーザーがGoogleアカウントにログイン済みかどうかを簡単に見分けることが可能です。例えば、サイト内にログイン後に表示される画像イメージを設けておいて、JavaScriptの「onload」「onerror」機能を使って画像イメージが読み込まれたかどうかを調べれば、サイトにアクセスしたユーザーがGoogleアカウントにログインしているかどうかを検出できるというわけです。

アンソニーさんが上記アイデアを使って作成したのが以下のデモページ。Googleアカウントに登録しているメールアドレスを入力して「送信」をクリックすれば、Googleアカウントにログインしているかどうかがわかります。

Google Account Leak
http://www.tomanthony.co.uk/google_leak/


このようなログイン状態を調べること自体に大きな問題はなさそうですが、アンソニーさんは、同じように設定されているパラメータを使って、アクセスしてきたアカウントがログインに使うメールアドレスが、事前に用意したアドレスと一致しているかどうかを検出できると指摘しています。アンソニーさんがデモ用に用意したサイトでは、23秒から24秒ごとに1000個のアドレスと一致するかどうかを検出できたそうです。

アンソニーさんのブログ内のムービーでは、20個のアカウントリストからアンソニーさんのアカウントであることを特定するデモの様子を確認できます。


アクセスしてきた人のメールアドレスを事前に用意したアドレスリストから総当たり的にチェックするという手法は、ごく限られた条件下でのみ、アクセスした人のメールアドレスが特定されるという危険がありそうです。なお、アンソニーさんはGoogleに対してこの手法を示したうえでバグではないかと修復を求めましたが、Googleからは「想定されている挙動であり、バグではない」という返答があったそうです。

・関連記事
名前やメールアドレス・住所などを自動的に入力してくれる「オートフィル機能」を使うと個人情報がこっそり盗まれる危険性あり - GIGAZINE

「送信」ボタンを押す前に内容を取得している悪質な入力フォームが発見される - GIGAZINE

マクドナルドユーザーのパスワードを盗み出すことが可能 - GIGAZINE

Googleが個人情報を盗み出す悪質な200のChromeアドオンを削除 - GIGAZINE

銀行口座情報を盗むマルウェア「Tinba」をマクロ実行なしで感染させる新手のPowerPoint添付ファイル攻撃が発見される - GIGAZINE

163

in ネットサービス,  セキュリティ, Posted by logv_to