OWASP Nagoya Chapterミーティング

第23回 / ハンズオン資料



(A2) Broken Authentication

2021/11/19 ハンズオン開催

認証のバイパス

1 2
認証のバイパスは様々な方法で発生するが、一般的には設定
やロジックの不備を悪用して行われる。

認証のバイパス

1 2
データを改ざんして正しい認証条件を達成するための例

● 隠し項目(hidden)への値入力

○ 最もシンプルな例はWebページにある隠し項目に認証条件が依存し
ている場合。

認証のバイパス

1 2
● パラメータの削除

○ 攻撃者がパラメータの正しい値を知らない場合、そのパラメータを
削除して何が起こるかを確認することがある。

● 強制ブラウジング

○ Webサイトの領域が(設定不備のため)適切に保護されていない場
合、推測やブルートフォースによってアクセスされる可能性がある。

2要素認証のパスワードリセット

~実際にPaypalで発覚した認証バイパスの例~

Henry Hoggard氏が2016年、旅行中にPaypalを使おうとしたが、電話の電波
が届かずトークンが受信できず。。

→秘密の質問の回答を忘れたためプロキシを使用し

 正しく回答したように見せかけた

→認証のバイパスに成功!

1 2
2要素認証のパスワード初期化

1 2
Henry Hoggard氏のブログより

https://henryhoggard.co.uk/blog/Paypal-2FA-Bypass

①

有効なID/PASSでログイン後、

”Try another way”をクリック

2要素認証のパスワード初期化

1 2
Henry Hoggard氏のブログより

https://henryhoggard.co.uk/blog/Paypal-2FA-Bypass

②

秘密の質問を適当に回答する

2要素認証のパスワード初期化

1 2
Henry Hoggard氏のブログより

https://henryhoggard.co.uk/blog/Paypal-2FA-Bypass

③

プロキシソフトを使用し、送信データから

”securityQuestion0”, “securityQuestion1”の

パラメータを削除して再送

2要素認証のパスワード初期化

1 2
Henry Hoggard氏のブログより

https://henryhoggard.co.uk/blog/Paypal-2FA-Bypass

④

アカウントの確認に成功

2要素認証のパスワード初期化

~ハンズオンシナリオ~

あなたはパスワードリセットをしようとしてますが、サービスプロバイダが認識
していない場所orデバイスから行っているため秘密の質問に答える必要が
あります。しかし、秘密の質問の答えは保持していないデバイスに記録した
ため覚えていません。

あなたは、ユーザー名/メールアドレスを既に入力しており、別の検証方法を
選択しました。

Try it!
1 2
2要素認証のパスワード初期化

Try it!
1 2
Paypalの事例を参考にアカウントの検証画面(秘密の質問)を突破してくださ
い。

2要素認証のパスワード初期化

Try it!
1 2
(ヒント)

1. このハンズオンの解き方は、先ほど紹介した『~実際に
Paypalで発覚した認証バイパスの例~』に似ていますが、
まったく同じではありません。

2要素認証のパスワード初期化

Try it!
1 2
2. 秘密の質問のパラメーターを改ざんしたいが、削除したいわ
けではありません。

2要素認証のパスワード初期化

Try it!
1 2
3. アカウントを検証するロジックは”2つの秘密の質問に回答
する”ことを期待していますが、実装に欠陥があるようです。





2要素認証のパスワード初期化

Try it!
1 2
4. 送信データの”secQuestion0”と”secQuestion1”のパラメー
ターの名前を変更してみましたか?





2要素認証のパスワード初期化

Try it!
1 2
(Writeup例)

1. ブラウザの開発者ツールを開き、「ネットワーク」タブを表示します。

2要素認証のパスワード初期化

Try it!
1 2
2. アカウントの確認画面を試しにSubmitしてみます。

2要素認証のパスワード初期化

Try it!
3. “verify-account”リクエストを選択し、「編集して再送信」をクリックしま
す、

1 2
3. “verify-account”リクエストを選択し、「編集して再送信」をクリックしま
す。

2要素認証のパスワード初期化

Try it!
1 2
2要素認証のパスワード初期化

Try it!
4. 要求ボディの”secQuestion0=&secQuestion1=”を
”secQuestionX=&secQuestionY=”に変更します。
(XとYは任意の文字)
1 2
2要素認証のパスワード初期化

Try it!
5. 変更したリクエストを

送信します。

1 2
2要素認証のパスワード初期化

Try it!
6. 新たな”verify-account”リクエストをクリックし、「応答」タブを表示しま
す。

1 2
2要素認証のパスワード初期化

Try it!
6. 新たな”verify-account”リクエストをクリックし、「応答」タブを表示しま
す。

1 2
“Congrats ~” の表示があれば成功
以上


(A2)broken authentication