PortSwigger Uncategorized Web技術 WritesUp セキュリティ
PortSwigger-2FA broken logic(BurpSuite WritesUp)

一つ前の2FA simple bypassは簡単すぎて取るに足らなかったので、一つ飛ばしてこちらのWritesUpを書きます。
まず、認証系の脆弱性を調べるときにはセッション管理に関する情報を収集をします。
一度正しいユーザでログインして、Cookieの払い出しがどのタイミングで行われるのか、いつCookieの値が更新されるのかといった情報を集めます。
調べた結果をものすごく簡単に要約すると、以下のようになっていました。
- ユーザIDとパスワードを使ったログイン施行時に使ったセッションIDは、ログイン成功後に書き換えられる。
そのレスポンスには、Set-Cookieにverify=wienerが設定され、Locationヘッダに /login2が指定されているため、リダイレクトされる。 - リダイレクト後のページでMFA用の4桁の数値を入力します。
MFAの値が正しいと、セッションIDが書き換えられます。
この挙動を頭に入れて攻撃を試します。
与えられた情報からにはパスワードがなかったため、/login2のMFA入力の脆弱性をつくんだと考えます。
まず与えられたユーザ名パスワードを入力します。
ログインに成功したら、MFAコードを総当たりします。
4桁の数値となりますが、文字型として0000から施行するのが面倒だったので、とりあえず、1000から試します。結果を調べていると、ほかと異なる応答があるものを見つけました。
成功したセッションIDを利用したアクセスします。
ログインのCookieを書き換えます。
するとログインに成功していることがわかります。