Lab: JWT authentication bypass via flawed signature verification
wienerでログイン
GET /my-accountリクエストを確認
セッション Cookie がJWT形式です
session文字列の[ . ]で区切られた2つめのブロックをダブルクリック
右のインスペクターに、base64デコードされた文字が表示されます。
リピータに渡します。
/admin をリピータで叩きます。
Admin interface only available if logged in as an administrator
とエラー
administratorでないとアクセスできない模様
右のインスペクタで、
sessionのjwt部分の
1つ目のブロックをダブルクリック alg をnone に
2つ目のブロックをダブルクリック、user名を administrator に書き換えます
3つ目のブロック(署名)を削除 *最後の . は残す
Apply changes
send
管理画面アクセスできたようで
レスポンスに
/admin/delete?username=carlos
が表示されるので、リピータで叩いて、クリアです!
今回は、jwtの署名を無効化する手順でした。
–)v
コメント