Hello there, ('ω')ノ
アルゴリズムの混乱による JWT 認証バイパスを。
まずは、ログインから。
ブラウザで標準エンドポイント /jwks.json にアクセスしてみると
サーバが単一の公開鍵を含む JWK セットを公開していることが確認でき。
キー配列内から下記のJWK オブジェクトをコピーして。
{"kty":"RSA","e":"AQAB","use":"sig","kid":"3e6db848-1e0b-4fb0-9cde-1780748c3482","alg":"RS256","n":"p3qx9_1QWihN8wrATSqM6KHO4F378tA-dofGPdkZrBsqvwtnKEwVn_rd_SGYSRcvrbe98HG8ihPkHi20mtaz3pY_5kzYhdOblwNO9IzFGH1x7O48zdZPtIKhqbYCBAW0hrSPpBu-0EAvq5rIVSqRX-rpF6_3xnIWgJD03sHRGvWjRQDv_LJXUUOmOzmLJbePLhNSIZ48rn5OV7i2s19vIHjYJJEmihQQwv57WHscBS-CDO8xPGRnTm6hMCk0zC-Wvfv5QQuRnLQ10phbDL0A5sA9N3nPQ3s8rCNXfJiTfZd1MzhoV5PZ6PBHM_zsudoMDuRTCuXynzVXfV0ZMyeq3Q"}
リクエストをリピータへ。
[New RSA Key] をクリックして。
ダイアログで、JWK オプションが選択されていることを確認してから、
コピーした JWK を貼り付けて。
[OK] をクリックしてキーを保存して。
作成したキーのエントリを右クリックし、[Copy Public Key as PEM] を選択して。
コピーした公開キーをBase64でエンコードして。
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp3qx9/1QWihN8wrATSqM
6KHO4F378tA+dofGPdkZrBsqvwtnKEwVn/rd/SGYSRcvrbe98HG8ihPkHi20mtaz
3pY/5kzYhdOblwNO9IzFGH1x7O48zdZPtIKhqbYCBAW0hrSPpBu+0EAvq5rIVSqR
X+rpF6/3xnIWgJD03sHRGvWjRQDv/LJXUUOmOzmLJbePLhNSIZ48rn5OV7i2s19v
IHjYJJEmihQQwv57WHscBS+CDO8xPGRnTm6hMCk0zC+Wvfv5QQuRnLQ10phbDL0A
5sA9N3nPQ3s8rCNXfJiTfZd1MzhoV5PZ6PBHM/zsudoMDuRTCuXynzVXfV0ZMyeq
3QIDAQAB
-----END PUBLIC KEY-----
次に[New Symmetric Key] をクリックし。
ダイアログで [Generate] で、JWK 形式で新しいキーを生成して。
キー サイズは後で自動的に更新されるため、選択する必要はなく。
生成された k プロパティの値を、Base64 でエンコードされた PEM に置き換えて。
JWT のヘッダで、alg パラメータの値を HS256 に変更して。
ペイロードで、sub クレームの値をadministratorに変更して。
[Sign] をクリックし、生成した対称キーを選択して。
[Don't modify header] オプションが選択されていることを確認し、
[OK] をクリックすると変更されたトークンは、サーバの公開鍵を秘密鍵として
署名されて。
そして、/adminのエンドポイントへリクエストすると
管理パネルにアクセスできて。
carlosを削除するエンドポイントとパラメータをリクエストすると。
クリアできて。
Best regards, (^^ゞ