チャレンジ一覧
ネットワーク解析 - SSL Stripによる平文認証情報
SSL Strip 攻撃により HTTPS が HTTP に格下げされ、被害者の認証情報が平文で流れた通信をキャプチャしました。配布されるパケットキャプチャ(traffic.pcap)から平文HTTPのPOSTを解析し、ログインのパスワード(フラグ)を抽出してください。
ネットワーク解析 - WebSocketフレームのマスク解除
capture.pcapには、ブラウザとチャットサーバーのWebSocket通信が記録されています。クライアントからサーバーへのフレームは毎回ちがう4バイトの鍵でマスクされています。フレームを解析してマスクを外し、3つのフレームに分割されたメッセージを組み立てて、デプロイ用のトークン(フラグ)を取り出してください。
ネットワーク解析 - 独自プロトコルの解読
独自の簡易バイナリプロトコルで通信するシステムのトラフィックをキャプチャしました。配布されるパケットキャプチャ(traffic.pcap)から、TCPポート9999のフレーム構造を解析し、ペイロードをデコードしてフラグを取得してください。
暗号解析 - RSA共通モジュラス攻撃
2つのシステムが同じRSAの法nを使い回し、公開指数だけを変えていました。同じメッセージを e1 と e2 で暗号化した暗号文 c1, c2 が漏れています(public_keys.txt、ciphertexts.txt)。nは素因数分解できませんが、秘密鍵なしでメッセージを取り戻し、フラグを提出してください。
暗号解析 - 小さい素数のDiffie-Hellman
古いIoT機器が36ビットしかない素数pでDiffie-Hellman鍵共有をしていました。handshake.txtには p, g, A = g^a mod p, B = g^b mod p と、共有鍵から作った鍵ストリームで暗号化された設定データがあります。離散対数を解いて共有鍵を求め、設定データに含まれるフラグを取り出してください。鍵ストリームの作り方はREADME.mdにあります。
ネットワーク解析 - HTTPのchunkedとgzipをTCPから復元
capture.pcapには、1本のTCP接続で2回行われたHTTPのやり取りが記録されています。サーバーからのセグメントは順番が入れ替わり、一部は再送で重複しています。2回目の応答(GET /api/export)はchunkedとgzipが重なっています。TCPストリームを組み立て直して応答を取り出し、管理者のAPIキー(フラグ)を見つけてください。
ネットワーク解析 - TCP再送差分の隠れチャネル
capture.pcapには同一TCPシーケンス番号を持つ再送パケットがあります。ペイロードが変化した再送だけを抽出し、同じシーケンス番号の2つの1バイトペイロードをXORして、シーケンス番号順にフラグを復元してください。
暗号解析 - DSA nonce再利用による秘密鍵復元
起動のたびに新しい鍵で作られる /challenge/signatures.json には、DSA の公開パラメーター(p は1024ビット、q は160ビット、g、y)、4つの署名(message, h, r, s。h は SHA-256(message) を整数にして mod q)、暗号化されたフラグ encrypted_flag_hex が入っています。4つの署名のうち2つは同じ nonce k を使っています。同じ r を持つ2つの署名から nonce k と秘密鍵 x を復元し、SHA256(str(x)) を繰り返した XOR 鍵で encrypted_flag_hex を復号してフラグを得てください。
暗号解析 - RSAのWiener攻撃
組み込み機器の開発チームが、復号を速くするためRSAの秘密指数dをとても小さくして鍵を作りました。public_key.txtの公開指数eはnと同じくらい大きな数です。e/nの連分数展開からdを求めて ciphertext.txt を復号し、フラグを取り出してください。
暗号解析 - 線形合同法の内部状態の復元
あるサービスは、セッショントークンも暗号化の鍵ストリームも、パラメーターa, c, mが秘密の線形合同法 x_{k+1} = (a×x_k + c) mod m から作っていました。tokens.txtの連続した10個の出力からa, c, mを復元し、続きの出力を8バイトずつ並べた鍵ストリームで暗号化された secret.enc.hex を復号して、フラグを取り出してください。
ネットワーク解析 - IPv4重複フラグメントの再構築
fragments.pcapのIPv4 ID 0xbeefのUDPデータグラムは、重複するフラグメントで一部のデータが上書きされています。到着順で後着断片を優先して再構築し、UDPペイロードのBase64データからフラグを復元してください。
暗号解析 - RSA e=3ブロードキャスト攻撃
broadcast.jsonには同じ平文をパディングなしRSA・e=3で3つの互いに素なmodulusへ暗号化した結果があります。中国剰余定理と整数立方根で平文を復元してください。