この分野で学べること
- データを読み取り変換するコード
- 問題を小さな処理に分ける方法
- 解析作業を自動化する考え方
初めての方はLevel 1から始め、解けたら次の難易度へ進むのがおすすめです。
コードを書いてデータを加工・解析し、手作業では難しいセキュリティ課題を解く方法を学びます。
初めての方はLevel 1から始め、解けたら次の難易度へ進むのがおすすめです。
47件の問題から選べます。
Programming Level 1: ★☆☆☆☆ セキュリティ業務では、大量のデータを処理するためにプログラミングが必須です。 このチャレンジでは、Pythonでファイルを読み込んでフラグを見つけます。 「data.txt」というファイルに100行のテキストがあり、 ...
Programming Level 2: ★★☆☆☆ localhost:9102 の株価APIを起動し、全銘柄の取引から sell_price - buy_price が最大の id を POST /api/check に送信してください。正しい id の応答が起動時注入...
Programming Level 2: ★★☆☆☆ data.txt には100行以上のBase64文字列があり、1行だけが起動時に注入された FLAG を復元します。全行をデコードしてフラグを見つけてください。
Programming Level 2: ★★☆☆☆ 起動時に生成される data.txt は売上CSVです。amount が10000以上、status が completed、product_id が SEC- で始まる唯一の行の notes が FLAG です。
Programming Level 2: ★★☆☆☆ 起動時生成の JSON data.txt から、role が admin、active が true、email に @secret.com を含む唯一のユーザーを見つけ、その flag フィールドを取得してください。
Programming Level 2: ★★☆☆☆ 起動時生成の data.txt は1200行のアクセスログです。192.168.1.100 の行だけを抽出し、その中の FLAG を見つけてください。
Programming Level 2: ★★☆☆☆ data.txt には100行以上のBase64エンコード文字列が並んでいます。すべてをデコードし、その中からフラグ(FLAG{...}で始まる行)を見つけるスクリプトを書いてください。
Programming Level 2: ★★☆☆☆ data.txt は売上CSV(transaction_id,date,product_id,amount,status,notes)です。amountが10000以上、statusが completed、product...
Programming Level 2: ★★☆☆☆ data.txt は多数のユーザーを含むJSONです。role が admin、active が true、email に @secret.com を含むユーザーを1人だけ見つけ、そのレコードに含まれるフラグを取得してく...
Programming Level 2: ★★☆☆☆ data.txt は1000行以上のアクセスログです。IPアドレス 192.168.1.100 からのアクセス行を抽出し、その中に含まれるフラグ(FLAG{...})を見つけてください。
Programming Level 2: ★★☆☆☆ data.txt には多数の sha256 ハッシュが並んでいます。フラグは順序付きのチャンクに分割され、各チャンクは sha256("{i}:{chunk}") としてハッシュ化されています。チャンクは同梱の word...
Programming Level 2: ★★☆☆☆ jobs.log は起動時に注入された FLAG から生成されます。archive/status=ok行をpart順に選びvalue反転後16進復元してフラグを取得してください。
Programming Level 2: ★★☆☆☆ vault.json は起動時に注入された FLAG から生成されます。0000–9999のPIN SHA-256を照合し一致PINのストリームでXOR復号してフラグを取得してください。
Programming Level 2: ★★☆☆☆ artifact-manifest.json は起動時に注入された FLAG から生成されます。各dataのSHA-256検算後、name SHA-256でXOR復号して結合してフラグを取得してください。
Programming Level 2: ★★☆☆☆ capture.bin は起動時に注入された FLAG から生成されます。KBIN TLVのtype 0x42を抽出して0x5A XOR復元してフラグを取得してください。
Programming Level 2: ★★☆☆☆ data.txt から KINO-数字4桁-英大文字4文字の記号をすべて抽出し、一度だけ出現する値を challenge.py に入力してください。正解時に起動時注入 FLAG が表示されます。
Programming Level 3: ★★★☆☆ data.db は業務データの SQLite データベースです(users / orders / audit_log)。フラグは、注文合計額(SUM(amount))が最も大きい唯一のユーザーの security_not...
Programming Level 3: ★★★☆☆ cipher.txt には独自の暗号でエンコードされたフラグが16進で入っています。暗号化は各バイトに add(鍵加算) -> xor(位置依存) -> rotl(巡回シフト) を適用したものです。この逆変換を Pyth...
Programming Level 3: ★★★☆☆ secret.zip は弱いパスワードで暗号化された ZIP で、中に flag.txt があります。同梱の wordlist.txt を使い、Python 標準ライブラリの zipfile でパスワードを総当たりして ...
Programming Level 3: ★★★☆☆ data.txt の S から E までの最短経路を BFS で求め、UDLR の移動列を challenge.py に入力してください。正しい経路で起動時注入 FLAG が表示されます。
Programming Level 3: ★★★☆☆ evidence.db は起動時に注入された FLAG から生成されます。users/access_log JOINで最大trust_scoreのnoteをBase64復元してフラグを取得してください。
Programming Level 3: ★★★☆☆ site.json は起動時に注入された FLAG から生成されます。linkグラフのorder順comment Base64断片を結合してフラグを取得してください。
Programming Level 3: ★★★☆☆ archive.json は起動時に注入された FLAG から生成されます。wordlistでpassword_sha256一致語を探し鍵byte XOR復号してフラグを取得してください。
Programming Level 3: ★★★☆☆ capture.txt は起動時に注入された FLAG から生成されます。flow=exfilのpayload_hexを0x5A XOR復号してフラグを取得してください。