Hello there, ('ω')ノ
JSON Web Tokenを悪用してアカウントを盗むを。
脆弱性:
IDOR
記事:
https://filipaze.medium.com/abusing-json-web-token-to-steal-accounts-3000-b9f7daeaef81
JWTとは、サーバ上のセッションデータを追跡する必要をなくすことで。
認証に対するステートレスソリューションを提供して。
JWTを使用すると、セッションデータをJWTの形式で。
クライアントに直接安全かつ確実に保存できて。
JWTの例:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
最初の部分であるHEADERは、アルゴリズムとトークンタイプを示していて。
2つ目は、ペイロード自体で渡す情報が含まれていて。
最後に検証された署名は、トークンが編集されるのを防ぐもので。
JWTについて詳しくは、下記を。
脆弱性の検出と悪用:
XSS、SQLインジェクション、IDORなどのバグを探していたものの。
ターゲットはかなり安全だったので、認証フローのバグを探し始めまることに。
2つのJWTの唯一の違いは、ペイロードに存在するIDであることに気付いて。
この値がユーザのアカウント番号であることがわかったので。
IDを被害者のIDに変更すると、どのアカウントにもアクセスできて。
被害者のIDを確認する方法:
専用のログインおよび登録ページはなかったので。
ユーザは自分のメールアドレスを入力し、[次へ]をクリックすると。
サーバは電子メールをチェックして。
ログインまたは登録のためにユーザを転送するものの。
この過程でIDが漏洩していて。
電子メールが存在する場合は、電子メールとIDを使用して
下記のようにリクエストが送信されて。
email=victim@gmail.com&id=123456
Best regards, (^^ゞ