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