HackerOneのレポート読む②

はい、どんどんやってきますよ。

 

本日は以下

https://hackerone.com/reports/783258

 

 

タイトルは

2-factor authentication can be disabled when logged in without confirming account password

 

アカウントパスワードの確認なしに二要素認証機能を無効にできるらしい、、、これは良くなさそうだなぁ…。

ちなみにこの脆弱性については500$の報奨金が支払われています。

 

 

やり方としては、、、

リクエストを止められる状態にしておいて、

1.誰かのアカウントでアクセスする

2.二段階認証無効のボタンを押す

3.適当にパスワードを入力し、リクエストヘッダをコピーする

4.以下URLを用意し、ヘッダーをコピーする

https://xxxxxxxxxx.com/api/user/two-factor/set

5.リクエストボディに以下を追加

method=sms&phone=%2B62-hacker-phone-number

これでオッケーらしい

 

 

用意された動画を見ると、、

まず、自身のアカウントにログインしていて、二段階認証が有効になっているという状況です。

この状態で二段階認証を解除しようとするとパスワードが求められて、認証が成功しなければ解除できない、という形です。

 

さて、ここでわざと間違えたパスワードを入力して、エラーを出します。

そのエラーのapiはキャンセルのapiなのですが、これを取得し、そのapiのリクエストをurl以外全てコピーします。

コピーした内容をセットのapiにつけて送ることで、apiが正常に応答します。

たしかに、api上のレスポンス上では二段階認証のEnabledフラグがDisabledになっているようです。

※だから完全に機能が無効化されたかどうかはわからないのですが…

 

 

で、返答が

「いやこれUI上の表示を変えただけで、ページ再読み込みしたらdisabledのままじゃね?

結果的に変わってないんじゃね?」

 

 

それに対して反論

「とりあえずPOC見てくれ。」

このあたり、筆者熱くなってる…?

 

 

筆者側で新しくmp4が用意されているので見ましょう。

今度はゆっくり試しているので追いやすかったです。

 

前回との違いは、cancelのapiを直接setに変更していること。

さらに、上記にあるようにリクエストボディにmethod〜〜を追加することでできてしまいました。

 

 

 

で、掌返しの反応。

結局無事に受理されたようです。

 

 

最後の方よくわからない状況になってますが…。

誰か状況わかります??

 

それから、iPhoneで見てると添付されたmp4が開ないんですよね、何かいい方法はないものか…。

→開ましたごめんなさい。

読み込みに時間かかってたのを勘違いしてしまったようです。

 

以上。