Hello there, ('ω')ノ
1つ目と2つ目のバグは — 2FA バイパスを。
脆弱性:
MFAバイパス
HTTPレスポンス操作
情報漏えい
記事:
https://medium.com/@nireshpandian19/my-first-and-second-bugs-are-2fa-bypass-1f6fd823b467
今回は、最初のバグと最初のバグの直後に見つけた 2 番目のバグに関するもので。
これらは、2FA バイパスにつながる不適切な認証コントロールで。
最初の1つ :
最初のバグは、暗号通貨ウォレットの Web サイト (redacted.com と呼びぶことに) で。
バグは非常に単純で、2FA 認証を持つアカウントは次のような応答を受け取り。
{
... ,
... ,
required: false
}
ダッシュボードにリダイレクトされ。
一方、2FA 認証が有効なアカウントは、以下のような応答を受け取り。
{
... ,
... ,
required: true
}
これらのパラメータを見て非常に興奮し、Burp プロキシを起動して。
これらのリクエストを傍受し、明らかに必要なパラメータの値を。
true から false に変更し。
クライアント側の応答操作と BOOM により、ダッシュボードにリダイレクトされて。
アカウントの詳細をすべて取得し、すぐにアカウントにログインして。
教訓:
応答のジューシーなパラメータを常に確認するようにして。
二つ目 :
これは複雑なためではなく、見つけるのが少し困難でしたが。
複数のエンドポイントが含まれていたため、それらを見つけるのに時間がかかり。
これはまったく別の Web サイトで (bluedacted.com と呼ぶことに)。
ここで最初に確認したのは、ログイン リクエストの応答で。
驚いたことに、応答は次のようになり。
400 BAD REQUEST
.
.
.
{
error:"xxx",
message:"xxx",
need2FA:true
}
ジューシーなパラメータ:「need2FA」 に気づいたとき。
最初のものと同じ種類の応答操作を試してみると。
同じ方法でダッシュボードにリダイレクトされ。
残念ながら、それだけで。
内部ダッシュボードとオプション ページにリダイレクトされましたが。
ログインしようとしたユーザの詳細を取得できず。
すぐに、bluedacted.com Web サイトがリクエストで認証トークンを。
使用していることがわかり。
このトークンは、2FA ステップが完了した場合にのみ提供され。
応答を操作したため、認証トークンを取得できず。
ブラウザによって行われたすべての要求に下記があり。
Authorization: Bearer undefined
その後、顧客が商品を注文できる注文ページに出くわして。
顧客 ID とログインしている顧客の名前だけを取得するための。
ログイン フォームが含まれていて。
すぐに、2FA で保護されたアカウントの資格情報を試して。
OTP を要求することなく、nameとcustomer_IDを取得でき。
これでは十分ではなくて。
賢明なハッカーが行うように、これをエスカレートしてアカウントに。
ログインする必要があり。
開発者ツールに移動し、ブラウザからの ajax 応答を確認すると。
応答は、自分のアカウントの詳細と次のような認証トークンを含む JSON で。
{
"customer_ID": 1452,
"name": Magma,
"token": xxxxxxxxxxxxxxxx
}
以前の実際のログイン ページに急いでアクセスし。
Authorization: Bearer undefinedを、ここで取得した実際のトークンに置き換えると。
これもまた 2FA バイパスできて。
教訓:
すべてのログイン ページとフォームを常にくまなく調べるように。
Best regards, (^^ゞ