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

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

  • GIGAZINE
  • 更新日:2017/08/10
No image

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に直接リダイレクト処理されることになります。

No image

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

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

Google Account Leak

No image

http://www.tomanthony.co.uk/google_leak/

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

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

No image

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

この記事をお届けした
グノシーの最新ニュース情報を、

でも最新ニュース情報をお届けしています。

外部リンク

IT総合カテゴリの人気記事

グノシーで話題の記事を読もう!
【本日のセール情報】Amazonタイムセールで80%以上オフも!ポケモンデザインの万能クリップや1,000円未満の防水ケース・スマホスタンドが登場
不親切で罠を仕掛ける、ポケットWiFi料金システムに温厚なタイ人も激怒
『ドラクエ』スライム型目薬の再販売が開始!―ロート製薬のコラボ限定品
スマホをゲームボーイにする魔法のカバー「SmartBoy」が、ついに発売!
「Firefox 55」正式版がリリース、WebVRに対応しパフォーマンスも劇的に向上
  • このエントリーをはてなブックマークに追加