この分野で学べること
- HTTPリクエストとレスポンスの読み方
- 代表的なWeb脆弱性が生まれる理由
- 安全な実装と防御の考え方
初めての方はLevel 1から始め、解けたら次の難易度へ進むのがおすすめです。
HTTP、認証、入力検証など、Webアプリケーションの仕組みと脆弱性を安全な演習環境で学べます。
初めての方はLevel 1から始め、解けたら次の難易度へ進むのがおすすめです。
32件の問題から選べます。
Web Level 1: ★☆☆☆☆ Webページには、見た目には表示されない情報がたくさん含まれています。 HTMLソースコードを見ると、開発者向けのメモ(コメント)が見つかることがあります。 このページのソースコードを確認してフラグを見つけましょう! ...
Web Level 1: ★☆☆☆☆ このページにはパスワードで保護されたエリアがあります。 しかし、JavaScriptでパスワードをチェックしているため、 ソースコードを見れば正しいパスワードが分かってしまいます! 開発者ツールでJavaScriptを...
Web Level 1: ★☆☆☆☆ Webサイトは、Cookieという仕組みでブラウザに情報を保存します。 ログイン状態の管理などに使われますが、時には重要な情報が Cookieに保存されていることもあります。 このサイトのCookieを確認してフラグを...
Web Level 1: ★☆☆☆☆ このログインフォームにはSQL Injection脆弱性があります。 適切な認証情報なしで admin としてログインし、フラグを取得してください。
Web Level 1: ★☆☆☆☆ Webサイトにはクローラー向けに robots.txt が置かれていることがあります。この問題では、robots.txt がクロール除外を指定しているファイルに実際にアクセスできるかどうかを確認します。
Web Level 1: ★☆☆☆☆ Nginxサーバーであるディレクトリのインデックス表示(autoindex)が有効になっている場合、本来隠しておきたいファイル一覧が誰でも見えてしまいます。公開されているディレクトリを調べてみましょう。
Web Level 1: ★☆☆☆☆ このアプリケーションは特定のHTTPヘッダーの値をもとにアクセスを許可しています。ブラウザの通常操作では送られない値でも、リクエストを作り直せば自由に変更できます。
Web Level 1: ★☆☆☆☆ このページはURLのGETパラメータの値をJavaScriptでチェックし、条件を満たすとフラグを表示します。URLの末尾にパラメータを追加して条件を満たしてみましょう。
Web Level 1: ★☆☆☆☆ ログインフォームには見た目には分からない隠しフィールド(hidden input)が含まれています。開発者ツールで確認し、送信データを書き換えられないか試してみましょう。
Web Level 1: ★☆☆☆☆ 保護されたエリアにはHTTP Basic認証がかかっていますが、開発者が誤って認証情報をページのHTMLコメントに残してしまっています。ページのソースを確認してみましょう。
Web Level 1: ★☆☆☆☆ あるページにアクセスすると即座に別ページへリダイレクトされてしまいます。ブラウザは自動でリダイレクトに従いますが、その前のレスポンス本文を確認する方法を考えてみましょう。
Web Level 1: ★☆☆☆☆ このWebアプリケーションには基本的なXSS脆弱性があります。 ゲストブックの表示に入力がそのまま反映される箇所を探し、フラグを取得しましょう。
Web Level 2: ★★☆☆☆ KinoGadget社の社内向け「社員アクセスポータル」は、レガシーな認証システムで動いています。開発者が動的SQLクエリを直接組み立てていると噂されており、管理者アカウントとして侵入できるか試すことになりました。
Web Level 2: ★★☆☆☆ BlogSearchはブログ記事を検索できるシンプルな検索エンジンです。検索クエリが結果ページにそのまま表示されるため、入力のサニタイズ漏れがないか確認してみましょう。
Web Level 2: ★★☆☆☆ ImageVaultはJPG・PNG・GIF画像をアップロードできる画像ホスティングサービスです。ファイルの検証がファイル名の末尾だけを見ているとしたら、どんな不正なファイルが通ってしまうでしょうか。
Web Level 2: ★★☆☆☆ このアプリはホスト名を入力するとpingを実行してくれる診断ツールです。入力したホスト名がそのままシェルコマンドに渡されているとしたら、何が起きるでしょうか。
Web Level 2: ★★☆☆☆ UserProfile ServiceはユーザーIDを指定してプロフィール情報を取得できるAPIを提供しています。自分のID以外を指定した場合にアクセス権のチェックが行われているか確認してみましょう。
Web Level 2: ★★☆☆☆ 社員ポータルへの侵入で見つけた手がかりから、隔離された研究ラボシステム「CHIMERA」の存在が判明しました。このシステムはJWTで認証しており、開発者が推測しやすい秘密鍵で署名している疑いがあります。
Web Level 2: ★★☆☆☆ FileShareは共有フォルダ内のファイルを一覧・ダウンロードできるアプリです。ダウンロードエンドポイントに渡すファイル名パラメータが検証されているか確認してみましょう。
Web Level 2: ★★☆☆☆ このコンタクトフォームは入力内容をXMLに変換してサーバーへ送信し、サーバー側でパースした結果を表示します。XMLパーサーの設定次第では思わぬファイルが読めてしまうかもしれません。
Web Level 2: ★★☆☆☆ このバンキングアプリではログイン中のユーザーが送金操作を行えます。別サイトから送金リクエストを送らせることができないか、CSRF対策の有無を確認してみましょう。
Web Level 2: ★★☆☆☆ このURL Fetcherサービスはユーザーが指定したURLの内容を取得して表示します。サーバーが到達できる内部専用サービスにまでリクエストを送らせることができないか確認しましょう。
Web Level 3: ★★★☆☆ このユーザー検索アプリはユーザー名の存在有無だけを返しますが、直接的な検索結果は表示しません。エラーの発生有無やレスポンスの違いを手がかりに、隠された情報を推測できないか確認してみましょう。
Web Level 3: ★★★☆☆ このコメント掲示板はContent Security Policy(CSP)で保護されており、スクリプトの実行元を自サイトと信頼済みCDNのみに制限しています。信頼されたCDNの中身まで安全とは限らない点に注目してみまし...