チャレンジ一覧

カテゴリと難易度で絞り込みながら、興味のある問題を探せます。

リセット
Linux Level 1: ★☆☆☆☆

Linux-プロセス基礎. sleepコマンドの引数を確認せよ

バックグラウンドで実行されている複数のプロセスの中から、目的のコマンドライン引数を持つプロセスを見つけてください。psコマンドの基本的な使い方を確認する問題です。

Linux Level 1: ★☆☆☆☆

Linux-深層探索. findで奥深くのファイルを発見せよ

いくつも入れ子になったディレクトリの奥に、フラグが書かれたファイルが1つだけ隠れています。findコマンドを使って、おとりのファイルに惑わされずに本物を見つけてください。

Linux Level 1: ★☆☆☆☆

Linux-環境変数の基礎. シェル起動時の変数を確認せよ

シェルが起動する際に設定される環境変数の中に、フラグを保持するものがあります。envコマンドやecho $変数名で確認してみましょう。

Linux Level 1: ★☆☆☆☆

Linux基礎 - 権限とSUID

Linuxの基本コマンドとファイル権限を学ぶチャレンジです。 ヒントを頼りにSUIDを見つけてフラグを取得しましょう。

Web Level 1: ★☆☆☆☆

SQL Injection 101

このログインフォームにはSQL Injection脆弱性があります。 適切な認証情報なしで admin としてログインし、フラグを取得してください。

Web Level 1: ★☆☆☆☆

Web-04. robots.txtの落とし穴

Webサイトにはクローラー向けに robots.txt が置かれていることがあります。この問題では、robots.txt がクロール除外を指定しているファイルに実際にアクセスできるかどうかを確認します。

Web Level 1: ★☆☆☆☆

Web-05. ディレクトリリスティングの罠

Nginxサーバーであるディレクトリのインデックス表示(autoindex)が有効になっている場合、本来隠しておきたいファイル一覧が誰でも見えてしまいます。公開されているディレクトリを調べてみましょう。

Web Level 1: ★☆☆☆☆

Web-06. HTTPヘッダーの偽装

このアプリケーションは特定のHTTPヘッダーの値をもとにアクセスを許可しています。ブラウザの通常操作では送られない値でも、リクエストを作り直せば自由に変更できます。

Web Level 1: ★☆☆☆☆

Web-07. URLパラメータの改ざん

このページはURLのGETパラメータの値をJavaScriptでチェックし、条件を満たすとフラグを表示します。URLの末尾にパラメータを追加して条件を満たしてみましょう。

Web Level 1: ★☆☆☆☆

Web-08. POSTデータの改ざん

ログインフォームには見た目には分からない隠しフィールド(hidden input)が含まれています。開発者ツールで確認し、送信データを書き換えられないか試してみましょう。

Web Level 1: ★☆☆☆☆

Web-09. Basic認証の甘い罠

保護されたエリアにはHTTP Basic認証がかかっていますが、開発者が誤って認証情報をページのHTMLコメントに残してしまっています。ページのソースを確認してみましょう。

Web Level 1: ★☆☆☆☆

Web-10. リダイレクトの裏側を見る

あるページにアクセスすると即座に別ページへリダイレクトされてしまいます。ブラウザは自動でリダイレクトに従いますが、その前のレスポンス本文を確認する方法を考えてみましょう。

Web Level 1: ★☆☆☆☆

XSS基礎 - ゲストブック

このWebアプリケーションには基本的なXSS脆弱性があります。 ゲストブックの表示に入力がそのまま反映される箇所を探し、フラグを取得しましょう。

Cryptography Level 2: ★★☆☆☆

AES-ECBモードの脆弱性

ECBモードは同じ平文ブロックが同じ暗号文ブロックになるため、パターンが漏れます。この入門問題では、まず暗号化とエンコードの違いを確認します。 16進数データ: 4b494e4f434f7b6563625f6d6f64...

Programming Level 2: ★★☆☆☆

APIリクエスト - 最大利益取引の特定

localhost:9102 の株価APIを起動し、全銘柄の取引から sell_price - buy_price が最大の id を POST /api/check に送信してください。正しい id の応答が起動時注入...

Forensics Level 2: ★★☆☆☆

Apacheログから攻撃を見つけよ

Apache access.logを解析して、SQLインジェクション攻撃の痕跡を見つけましょう。 ログ解析とパターンマッチングを学びます。 提供ファイル: access.log

General Skills Level 2: ★★☆☆☆

Bashスクリプト - 自動化の力

/app/numbers.txt には1から1000までの数字が1行に1つずつ書かれています。 この中から、以下の条件を満たす数字をすべて抽出し、その合計値を求めてください: 条件: - 3の倍数 かつ 5の倍数 - ...

Forensics Level 2: ★★☆☆☆

Excelマクロに隠されたフラグ

Excelファイルに埋め込まれたマクロコードを解析してフラグを見つけましょう。 Office文書のマクロ解析方法を学びます。 提供ファイル: spreadsheet.xlsm

General Skills Level 2: ★★☆☆☆

Git探偵 - 失われたコミット

/app/repo はGitリポジトリです。 開発者が誤って重要な情報を含むコミットを削除してしまいました。 git reflog を使って削除されたコミットを見つけ、そのコミットメッセージに含まれるフラグを取得してく...

General Skills Level 2: ★★☆☆☆

JSONマスター - データ抽出

/app/users.json には100人のユーザー情報がJSON形式で保存されています。 この中から以下の条件を満たすユーザーを抽出してください: - age が 25以上30以下 - country が "Jap...

Linux Level 2: ★★☆☆☆

Linux-02. sudoで許可されたvimからの権限昇格

一般ユーザーがsudoでパスワードなしに実行できるコマンドを確認してみましょう。GTFOBinsで知られるテクニックを使うと、そのコマンドからシェルへ抜け出せる場合があります。

Linux Level 2: ★★☆☆☆

Linux-03. cron設定ファイルを読み解け

このシステムには複数のcron設定(/etc/cron.d、/etc/crontab、ユーザーcrontabなど)が存在します。それぞれの設定ファイルを確認し、フラグが書き込まれた場所を見つけてください。

Linux Level 2: ★★☆☆☆

Linux-Cron権限昇格. 書き込み可能なrootスクリプトを乗っ取れ

rootが定期実行するcronスクリプトのパーミッションを確認してみましょう。一般ユーザーでも書き込めてしまう場合、次の実行タイミングでどんなコードが動くか考えてみてください。

Linux Level 2: ★★☆☆☆

Linux-systemd. サービスユニットの環境変数を確認せよ

systemdのユニットファイルには [Service] セクションで環境変数を設定できます。登録されているサービス定義を調べ、そこに設定された値を確認してください。