チャレンジ一覧

WebセキュリティLevel 4★★★★☆

Web-26. User Profile Managerのプロトタイプ汚染

このNode.js/Express製アプリではログイン中のユーザーが自分のプロフィールを更新できます。更新処理に使われている再帰的なマージ関数が特殊なキーをきちんと除外しているか確認してみましょう。

WebセキュリティLevel 4★★★★☆

Web-27. GraphQL APIのイントロスペクション漏洩

このGraphQL APIはUserオブジェクトのスキーマを公開しており、イントロスペクションが有効になっています。公式には案内されていないクエリやフィールドが存在しないか調べてみましょう。

WebセキュリティLevel 4★★★★☆

Web-28. OAuth認可コードの横取り

このOAuth 2.0認可プロバイダーはログインフローを提供していますが、redirect_uriの検証が甘い可能性があります。認可コードを横取りして管理者権限のアクセストークンを得られないか確認してみましょう。

WebセキュリティLevel 4★★★★☆

Web-29. MongoDBログインフォームのNoSQLインジェクション

このログインポータルはMongoDBを使っており、ユーザー名・パスワードをJSONとしてそのままクエリに組み込んでいます。パスワードを知らなくても管理者としてログインできないか確認してみましょう。

WebセキュリティLevel 4★★★★☆

Web-30. KinoVaultの安全でないデシリアライズ

レガシーなバックアップシステム「KinoVault」は、ユーザーセッションをPythonのpickleでシリアライズしてCookieに保存していると噂されています。Cookieの形式を解析し、悪意あるpickleペイロードで権限を昇格できないか調べてみましょう。

ネットワークLevel 4★★★★☆

ネットワーク解析 - HTTPのchunkedとgzipをTCPから復元

capture.pcapには、1本のTCP接続で2回行われたHTTPのやり取りが記録されています。サーバーからのセグメントは順番が入れ替わり、一部は再送で重複しています。2回目の応答(GET /api/export)はchunkedとgzipが重なっています。TCPストリームを組み立て直して応答を取り出し、管理者のAPIキー(フラグ)を見つけてください。

ネットワークLevel 4★★★★☆

ネットワーク解析 - TCP再送差分の隠れチャネル

capture.pcapには同一TCPシーケンス番号を持つ再送パケットがあります。ペイロードが変化した再送だけを抽出し、同じシーケンス番号の2つの1バイトペイロードをXORして、シーケンス番号順にフラグを復元してください。