Mission

プロフィールAPIの覗き見を止めろ

プロフィール参照APIは、URL の :id をキーにプロフィールを返すだけで、リクエストしている本人が本当にそのプロフィールの持ち主かを確認していない。任意のログイン済みユーザーが、他人の ID を URL に入れるだけで他人の情報(秘密のメモなど)を読めてしまう。攻撃テストで確認し、リクエスト元と対象を一致させる認可チェックをコードへ入れる。

「誰がリクエストしているか(req.userId)」と「どの ID にアクセスしようとしているか(req.params.id)」を比べずに、URL の ID をそのまま信用していることが原因です。本人かどうかを確かめてから返す方向の修正を目指します。

脆弱性

Authentication Bypass

難易度

Easy

状態

available

Difficulty

出題モードを選ぶと、プレビュー有無・ヒント・スコア上限が変わります。

現在ステップ: Step 1状態: 未開始

次にやること: 攻撃テストを実行

Step 1

攻撃テスト

user-1 として認証済みのまま、URL の :id を user-2 に書き換えて他人のプロフィールが返ることを確認しましょう。

Lightweight Preview

Profile API / internal-0.4

GET /profile/:id

static

Payload

user-2

この問題は低メモリ公開版では軽量プレビューです。検証は静的パッチ判定で行います。

自動攻撃で検証

未実行

$ automated-attack

使用ペイロード: user-2

ボタンを押すと、左のプレビューを手動で操作しなくても 脆弱性の有無を即座に判定します。

実際の脆弱アプリケーションに対して攻撃を実行し、防御を検証します。