Hello there, ('ω')ノ
🎯 ラボの目的
- 通常ユーザーとしてログイン。
- プロファイル情報(メールアドレスなど)を更新するリクエストの中で、
roleid
を 2(管理者)に書き換える。 /admin
にアクセスできるようになったら、ユーザーcarlos
を削除。- 成功すればラボクリア。
🔐 アカウント情報
ユーザー名: wiener パスワード: peter
🧪 手順:ユーザープロファイル改ざんによる管理者昇格
1. 通常通りログイン
- 上記の資格情報でログインし、自分のアカウントページに移動。
2. メールアドレス変更リクエストを確認
- Burp Suiteでメールアドレス更新リクエストをキャプチャ。
- 例(JSON形式):
{
"email": "test@example.com"
}
3. roleid
を手動で追加
- 上記のリクエストを Burp Repeater に送信。
- JSONボディに
"roleid": 2
を追加:
{
"email": "test@example.com",
"roleid": 2
}
4. 送信してレスポンスを確認
- レスポンスに
roleid: 2
が含まれていれば昇格成功!
🛠 管理者ページにアクセス・操作
5. /admin
にアクセス
- ブラウザまたは Repeater で
/admin
を開く。 - 管理者メニューが表示されれば昇格に成功している。
6. ユーザー carlos
を削除
- 管理者ページ内の削除ボタンでユーザー
carlos
を削除。 - 削除成功メッセージが表示され、ラボクリア!
💡 ポイントとセキュリティ的な示唆
リスク | 解説 |
---|---|
クライアントから送られた roleid を信頼している |
検証がサーバー側で行われていない設計ミス |
本来、ロール変更はユーザーに許可すべきでない | UIに見えなくてもAPIで通ると危険 |
入力値のサーバー側バリデーションが不十分 | 「できるはずがない」が実はできてしまう |
🎓 この脆弱性は、インプットバリデーションと権限管理の甘さに起因する典型的な論理的脆弱性です。UIに制限があっても、APIリクエストが通るかどうかをBurpで確かめることで、見落とされがちなバックエンドの穴を突くことができます。
Best regards, (^^ゞ