Hello there, ('ω')ノ
🔍 概要
このラボでは、ユーザーアカウントページに現在のユーザーのパスワードがマスクされた入力欄にプレフィルされているという脆弱性があります。この脆弱性を利用して、管理者のパスワードを取得し、ユーザーcarlos
を削除することでラボを解決します。
🛠️ 攻略手順
提供された資格情報でログインする
- ユーザー名:
wiener
- パスワード:
peter
- ユーザー名:
アカウントページにアクセスする
- ログイン後、
My Account
ページに移動します。 URLは以下のようになっています:
https://<lab-id>.web-security-academy.net/my-account?id=wiener
- ログイン後、
id
パラメータをadministrator
に変更するURLの
id
パラメータをadministrator
に変更してアクセスします:https://<lab-id>.web-security-academy.net/my-account?id=administrator
管理者のパスワードを取得する
- アカウントページのパスワード入力欄を右クリックし、「検証」または「要素を検証」を選択します。
- 開発者ツールで
<input>
タグを確認し、value
属性に設定されているパスワードを取得します。
管理者アカウントでログインする
- ログアウトし、取得したパスワードを使用して
administrator
アカウントでログインします。
- ログアウトし、取得したパスワードを使用して
管理者パネルにアクセスし、
carlos
を削除する- ログイン後、
Admin panel
へのリンクが表示されます。これをクリックして管理者パネルにアクセスします。 - 管理者パネルでユーザー
carlos
を削除します。
- ログイン後、
🧠 ポイントと注意点
- 水平から垂直への権限昇格: この攻撃は、他のユーザーの情報にアクセスする水平的権限昇格から始まり、管理者アカウントを乗っ取る垂直的権限昇格へと発展します。
- パスワードのプレフィル: パスワードがプレフィルされていること自体が重大なセキュリティリスクです。特に、他のユーザーのアカウントページにアクセスできる場合、パスワードが漏洩する可能性があります。
- 開発者ツールの活用: ブラウザの開発者ツールを使用して、マスクされたパスワードの実際の値を確認できます。
✅ まとめ
このラボでは、リクエストパラメータによってユーザーIDが制御されていることと、パスワードがプレフィルされているという2つの脆弱性を組み合わせて、管理者アカウントを乗っ取り、ユーザーcarlos
を削除する方法を学びました。これにより、アクセス制御の欠陥がどのように深刻なセキュリティリスクにつながるかを理解できます。
Best regards, (^^ゞ