チャレンジ一覧

絞り込みを解除

53 問 (2 / 3 ページ)

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

Web-19. 銀行アプリのCSRF送金

このバンキングアプリではログイン中のユーザーが送金操作を行えます。別サイトから送金リクエストを送らせることができないか、CSRF対策の有無を確認してみましょう。

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

Web-20. URL FetcherからのSSRF

このURL Fetcherサービスはユーザーが指定したURLの内容を取得して表示します。サーバーが到達できる内部専用サービスにまでリクエストを送らせることができないか確認しましょう。

フォレンジックLevel 2★★☆☆☆

Windows レジストリからUSB履歴を探せ

SYSTEM ファイル(レジストリ hive の USBSTOR 部分をテキストで表したもの)を解析して、2025-11-19 14:45(UTC)ごろに接続されていた USB デバイスを特定し、そのデバイスが記録していた値からフラグを取得しましょう。Windowsフォレンジックの基本を学びます。 提供ファイル: SYSTEM

フォレンジックLevel 2★★☆☆☆

ディスクイメージから秘密ファイルを探せ

ext4 ファイルシステムのディスクイメージ `disk.img` を調査し、ファイルシステム内に隠された秘密のバックアップを見つけ出して、フラグを取得してください。 コンテナの中では mount できないため、debugfs でファイルシステムを直接たどります。

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

ネットワーク解析 - DNSゾーン転送の漏洩

設定不備の権威DNSサーバーに対する、認証なしのゾーン転送(AXFR)が成功した通信をキャプチャしました。配布されるパケットキャプチャ(traffic.pcap)から転送された内部ゾーンのTXTレコードを解析し、フラグを回収してください。

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

ネットワーク解析 - ICMPによるデータ持ち出し

社内の端末10.20.0.15から外部の203.0.113.66へ、ping(ICMPエコー要求)を装ってデータが持ち出されました。トップページからtraffic.pcapをダウンロードし、外部宛てのエコー要求のデータ部をICMPシーケンス番号の順に連結してフラグを復元してください。

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

ネットワーク解析 - SMB共有列挙の情報漏洩

攻撃者がネットワーク上の SMB 共有を列挙している通信をキャプチャしました。配布されるパケットキャプチャ(traffic.pcap)から SMB(TCP/445)のトラフィックを追い、漏洩したファイルの中身に含まれるフラグを抽出してください。

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

ネットワーク解析 - Telnetの認証情報

古いサーバーがTelnet(平文)でリモート管理されていました。配布されるパケットキャプチャ(traffic.pcap)からTelnetセッションを追跡し、ログイン時のパスワードを抽出してください。パスワードがフラグです。

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

ネットワーク解析 - 匿名FTPの転送ファイル

匿名FTPで平文転送されたセッションをキャプチャしました。配布されるパケットキャプチャ(traffic.pcap)からFTPのデータ転送を追跡し、ダウンロードされたファイルの中身に含まれるフラグを抽出してください。

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

ネットワーク解析 - 平文HTTPの認証情報

公共Wi-Fiで傍受した通信を解析します。誰かが平文HTTPでログインしていました。配布されるパケットキャプチャ(traffic.pcap)からHTTP POSTのログイン要求を見つけ、パスワードを抽出してください。パスワードがフラグです。

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

ネットワーク解析 - 平文SMTPの添付ファイル

社内の端末10.30.0.25が、メールサーバー10.30.0.10の25番ポートへ暗号化なしでメールを送りました。トップページからtraffic.pcapをダウンロードし、メールに添付された社外秘のメモ(secret-memo.txt)を取り出して、そこに書かれたトークン(フラグ)を見つけてください。

暗号Level 2★★☆☆☆

ハッシュ衝突の発見

MD5では異なる入力が同じハッシュ値になる衝突が実用的に作れます。衝突耐性が破られたハッシュを安全用途に使ってはいけません。 同一MD5を持つとされる2つのファイル: file_a != file_b md5(file_a) = d131dd02c5e6eec4693d9a0698aff95c md5(file_b) = d131dd02c5e6eec4693d9a0698aff95c MD5衝突を発見したことを表す語句として、md5、collision、found の3語を小文字のままアンダースコアでつなぎ、KINOCO{...} の形式で提出してください。

暗号Level 2★★☆☆☆

ハッシュ長拡張攻撃

MD5、SHA-1、SHA-256などの構造では、secret || message の単純ハッシュを署名にすると長さ拡張攻撃を受ける場合があります。 既知のメッセージとSHA-256: message = "user=guest" sha256(secret || message) = 84d89877f0d4041efb6bf91a16f0248f2fd573e6af05c19f96bedb9f882f7882 append = "&admin=true" この問題では攻撃手順の理解を確認します。攻撃名を表す3つの英単語 hash、extension、attack を小文字のままアンダースコアでつなぎ、KINOCO{...} の形式で提出してください。

フォレンジックLevel 2★★☆☆☆

パケットキャプチャからパスワードを探せ

ショップの内部ネットワークで記録された平文HTTP通信をキャプチャしました。多数のリクエストの中に管理者アカウントのログイン試行が1件だけ紛れています。配布されるパケットキャプチャ(traffic.pcap)を解析し、管理者(username=admin)のパスワードを抽出してください。パスワードがフラグです。

暗号Level 2★★☆☆☆

パディングオラクル入門

パディングオラクル攻撃では、エラーの違いが平文復元の手がかりになります。この入門問題では、漏えいしたBase64文字列からフラグを読み取ります。 漏えいしたBase64文字列: Vmlld1NvdXJjZTpLSU5PQ097cGFkZGluZ19vcmFjbGVfYmFzaWNzfQ== この文字列をBase64デコードし、ViewSource: の後ろにある文字列をフラグとして提出してください。

フォレンジックLevel 2★★☆☆☆

ファイルのタイムスタンプから侵入時刻を特定せよ

evidence/ の複数のファイルの更新時刻を分析して、侵入が発生した時間帯と関連する隠しファイルを特定しましょう。隠しファイルの中身は、そのまま読めるとは限りません。 タイムライン分析の基本を学びます。

プログラミングLevel 2★★☆☆☆

プログラミング - Bashジョブログの解析

/challenge/jobs.log は、コンテナの起動のたびに乱数で作り直される夜間バッチの実行ログです。1行が1回のジョブ実行で、key=value の欄が空白で区切られています。job が archive で status が ok の行だけを選び、part の番号順に value(16進文字列を逆順にしたもの)を元に戻してつなぎ、16進デコードしてアーカイブトークン(英小文字と数字)を求めてください。そのトークンを python3 challenge.py '<トークン>' に渡すと、正しいときだけフラグが表示されます。

プログラミングLevel 2★★☆☆☆

プログラミング - PINの総当たり

/challenge/vault.json は、コンテナの起動のたびに乱数で作り直される金庫の記録です。salt(16進文字列)と、pin_hash = sha256(salt + pin)(salt と6桁の pin を文字列のまま連結して UTF-8 にしたもののハッシュ)が入っています。000000 から 999999 までを総当たりして pin_hash に一致する6桁の PIN(先頭の 0 も含む)を見つけ、python3 challenge.py '<PIN>' に渡してください。正しいときだけフラグが表示されます。

プログラミングLevel 2★★☆☆☆

プログラミング - ハッシュ検証と復号

起動のたびに乱数で作られた証拠ファイル artifact-manifest.json を解析します。artifact(artifact_00 から artifact_09)ごとに複数のレコード(name・sha256・data)があり、正しいのは data を Base64 デコードした SHA-256 が sha256 欄と一致する1件だけです。正しいレコードの中身を SHA-256(name) のダイジェストで XOR 復号し、artifact 番号の順につないだ40文字(小文字英数字)が答えです。答えを `python3 challenge.py '<答え>'` に渡すと、正解のときだけフラグが表示されます。

プログラミングLevel 2★★☆☆☆

プログラミング - バイナリTLVの解析

/challenge/capture.bin は、コンテナの起動のたびに乱数で作り直される独自形式のバイナリです。先頭4バイトは KBIN、続いて TLV レコード(type 1バイト、length 2バイト(ビッグエンディアン)、value)が並び、type 0x7F(長さ 0)が終端です。type 0x10 と 0x20 の value はそのまま、それ以外の value は各バイトを 0x5A で XOR して格納されています。type が 0x42 のレコードの value を、ファイルの中の順番どおりに取り出して 0x5A で XOR し、つないだトークン(英小文字と数字)を python3 challenge.py '<トークン>' に渡してください。正しいときだけフラグが表示されます。

フォレンジックLevel 2★★☆☆☆

メモリダンプからプロセスを探せ

memory.dump は、メモリダンプの解析結果(pslist / psscan / cmdline)を並べた簡略化テキストです。リストから隠されている不審なプロセスを見つけ、そのプロセスが持つ設定の値からフラグを読み取りましょう。メモリフォレンジックの基本を学びます。 提供ファイル: memory.dump

暗号Level 2★★☆☆☆

レインボーテーブル攻撃

ソルトなしの高速ハッシュは、事前計算された逆引きDBで簡単に破られる場合があります。与えられたMD5ハッシュを逆引きしてください。 MD5ハッシュ: 5f4dcc3b5aa765d61d8327deb882cf99 このハッシュを逆引きし、元の文字列を KINOCO{...} の形式で提出してください。

暗号Level 2★★☆☆☆

ワンタイムパッド鍵再利用攻撃

ワンタイムパッドは鍵を一度だけ使う場合に安全です。同じ鍵を再利用すると、既知平文から別の平文を復元できます。 同じ鍵で暗号化された2つの暗号文: ciphertext1_hex = 1c0a070901 known_plaintext1 = HELLO ciphertext2_hex = 060a1e160b known_plaintext1 と ciphertext1 から鍵を復元し、ciphertext2 をXORで復号してください。復号した文字列を KINOCO{...} で包んだものがフラグです。

暗号Level 2★★☆☆☆

予測可能な乱数

固定seedの疑似乱数は再現できます。暗号用途で一般用途の乱数を使ってはいけません。 フラグ生成コード: import random random.seed(12345) flag_chars = [chr(random.randint(65, 90)) for i in range(10)] print("KINOCO{" + "".join(flag_chars) + "}") 同じPythonコードを実行し、生成されるフラグを提出してください。