ソース:
脆弱性:JWT, IDOR
訳:
最初はアカウントを登録してアプリケーションにログインしようとしましたが、最初はトークンを解析しようとは考えず、他の脆弱性を探し続けて。
2日後にシステムを解析しようとしたところ、次のことが判明しました。
ここで私は jwt トークンを試し。
これがデフォルトであるかどうかに関係なく、membrutefoce screet を試みることに興味を持って。
ここで、jwt トークンが Cookie に保存されていることがわかり、応答にはユーザーのプロフィールが表示されていることがわかり。
jwt のスクリプトを見つけることができれば、IDOR を実行できて。
どうすればよいでしょうか?
にアクセスして jwt.io 、トークンを復号化してみて。
復号化すると、user_id が含まれる json 形式のデータが取得されることがわかります。
スクレットの侵入に成功すると、user_id を他の人の user_id に変更でき。
署名が無効であることがわかって。
赤いボックス内に未入力のスクレットがあり。
どうすればその秘密を知ることができますか?
ジョン・ザ・リッパーツールを使っています。
最初に jwt ファイルを作成しました。ファイルの内容はコピーしたトークンで。
そしてビンゴ! 探していたものを入手し。
それは、このアプリがトークン スクレットにデフォルトで設定するスクレットで。
署名が有効に変更されたことがわかり。
これは、成功し、user_id を自由に変更できることを意味して。
トークンをburpsuiteに置いてみましょう。
user_id を 1368129 に から1368128 変更し。
ビンゴ! JWT Week Screet 経由で IDOR 脆弱性を入手し。
アカウントを引き継ぐにはどうすればよいですか?
ここで、ログイン アプリケーションが携帯電話番号と PIN のみを使用することを思い出し。
IDOR を使用して被害者の携帯電話番号を取得でき。
そしてログインページに直接行き。
私はすぐに被害者の携帯電話番号を入力しました
どうすればピンを確認できますか?
ここでは暗証番号に問題がありますが、暗証番号を忘れた場合に異常が発生し。
変更したいパラメータを取得し。
以下を参照してください。
上の図では、論理的にユーザーがユーザー名に入力した内容に基づいてOTPコードが送信されるため、パラメータが疑われますが、ここではサーバーが誰でも編集できるPOSTリクエストをサーバー上に提供し。
ここで私は試しています被害者の番号を私の番号に変更し。
そしてビンゴ! OTP コードを取得したら、利用可能なパラメータを使用して携帯電話番号を変更し、アカウントに OTP コードを入力し。
そしてそれはうまくいきました!!! 新しい PIN を入力するように指示され。
アカウントを乗っ取ろうとしたところ、被害者のアカウントに侵入することができて。
ほなほな。