Mission

サポートポータルの3つの入口をまとめて塞げ

初級編を終えた人向けの復習問題です。サポート担当者向けポータルには、認証クエリ、チケットコメントのHTML描画、ログイン後の handoff リダイレクトが同じ server.js にまとまっています。1つだけ直してもクリアにはならず、3つの入口をすべて安全にしてください。

入力が SQL / HTML / URL 遷移先という別々の文脈へそのまま渡されています。文脈ごとの防御、つまりプリペアドステートメント、HTMLエスケープ、内部パス限定を使い分ける必要があります。

脆弱性

Composite Review

難易度

Hard

状態

available

Difficulty

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

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

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

Step 1

攻撃テスト

自動攻撃またはプレビューで、ログイン突破・コメントXSS・外部リダイレクトが起きることを確認しましょう。

現在のサーバー状態(未修正)

Live Preview

Support Portal / review-1

POST /agent/login + GET /tickets/:id + GET /handoff

RV

Support Portal

3つの入口を個別に再現

SQL/XSS/REDIRECT

自動攻撃で検証

未実行

$ automated-attack

使用ペイロード: ' OR 1=1-- / <script>window.__pwned__=true</script> / https://evil.example.com

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

複合攻撃を実行し、3つの弱点がすべて塞がれているかを検証します。