この分野で学べること
- HTTPリクエストとレスポンスの読み方
- 代表的なWeb脆弱性が生まれる理由
- 安全な実装と防御の考え方
初めての方はLevel 1から始め、解けたら次の難易度へ進むのがおすすめです。
HTTP、認証、入力検証など、Webアプリケーションの仕組みと脆弱性を安全な演習環境で学べます。
初めての方はLevel 1から始め、解けたら次の難易度へ進むのがおすすめです。
32件の問題から選べます。
Web Level 3: ★★★☆☆ このログインポータルはフォームログイン・JSON API ログイン・検証コードチェックを備えています。管理者アカウントの本当のパスワードは分かりませんが、比較処理の実装次第では回避できるかもしれません。
Web Level 3: ★★★☆☆ Secure Bankではコイン残高を使ってショップで景品を購入できます。残高チェックと引き落とし処理が別々のステップで行われている場合、その間隙をどう突けるか考えてみましょう。
Web Level 3: ★★★☆☆ このグリーティングカード作成アプリはFlask/Jinja2で作られており、入力したメッセージをそのままテンプレートエンジンでレンダリングしています。テンプレート構文がどこまで実行されてしまうか調べてみましょう。
Web Level 4: ★★★★☆ このNode.js/Express製アプリではログイン中のユーザーが自分のプロフィールを更新できます。更新処理に使われている再帰的なマージ関数が特殊なキーをきちんと除外しているか確認してみましょう。
Web Level 4: ★★★★☆ このGraphQL APIはUserオブジェクトのスキーマを公開しており、イントロスペクションが有効になっています。公式には案内されていないクエリやフィールドが存在しないか調べてみましょう。
Web Level 4: ★★★★☆ このOAuth 2.0認可プロバイダーはログインフローを提供していますが、redirect_uriの検証が甘い可能性があります。認可コードを横取りして管理者権限のアクセストークンを得られないか確認してみましょう。
Web Level 4: ★★★★☆ このログインポータルはMongoDBを使っており、ユーザー名・パスワードをJSONとしてそのままクエリに組み込んでいます。パスワードを知らなくても管理者としてログインできないか確認してみましょう。
Web Level 4: ★★★★☆ レガシーなバックアップシステム「KinoVault」は、ユーザーセッションをPythonのpickleでシリアライズしてCookieに保存していると噂されています。Cookieの形式を解析し、悪意あるpickleペイロー...