チャレンジ一覧

絞り込みを解除

68 問 (3 / 3 ページ)

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

Web-25. Greeting Card GeneratorのSSTI

このグリーティングカード作成アプリはFlask/Jinja2で作られており、入力したメッセージをそのままテンプレートエンジンでレンダリングしています。テンプレート構文がどこまで実行されてしまうか調べてみましょう。

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

ネットワーク解析 - 802.1Q VLANで分けられた通信

capture.pcapは、スイッチのトランクポートをミラーしてキャプチャした通信で、複数のVLANのフレームが802.1Qタグ付きで混ざっています。どのVLANでも同じ機器からUDP 5140番宛てに MGMT|<断片> の形で文字列が少しずつ送られ、全部が交互に混ざっています。管理VLAN 42の断片だけを届いた順につなげ、フラグを復元してください。

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

ネットワーク解析 - SNMP情報漏洩

弱いコミュニティ文字列(public)で SNMPv2c を喋る機器の GetResponse をキャプチャしました。配布されるパケットキャプチャ(traffic.pcap)から SNMP(UDP/161)の varbind を解析し、ベンダー独自OIDの値に含まれるフラグを回収してください。

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

ネットワーク解析 - SSL Stripによる平文認証情報

SSL Strip 攻撃により HTTPS が HTTP に格下げされ、被害者の認証情報が平文で流れた通信をキャプチャしました。配布されるパケットキャプチャ(traffic.pcap)から平文HTTPのPOSTを解析し、ログインのパスワード(フラグ)を抽出してください。

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

ネットワーク解析 - WebSocketフレームのマスク解除

capture.pcapには、ブラウザとチャットサーバーのWebSocket通信が記録されています。クライアントからサーバーへのフレームは毎回ちがう4バイトの鍵でマスクされています。フレームを解析してマスクを外し、3つのフレームに分割されたメッセージを組み立てて、デプロイ用のトークン(フラグ)を取り出してください。

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

ネットワーク解析 - 独自プロトコルの解読

独自の簡易バイナリプロトコルで通信するシステムのトラフィックをキャプチャしました。配布されるパケットキャプチャ(traffic.pcap)から、TCPポート9999のフレーム構造を解析し、ペイロードをデコードしてフラグを取得してください。

暗号Level 3★★★☆☆

暗号解析 - RSA共通モジュラス攻撃

2つのシステムが同じRSAの法nを使い回し、公開指数だけを変えていました。同じメッセージを e1 と e2 で暗号化した暗号文 c1, c2 が漏れています(public_keys.txt、ciphertexts.txt)。nは素因数分解できませんが、秘密鍵なしでメッセージを取り戻し、フラグを提出してください。

暗号Level 3★★★☆☆

暗号解析 - 小さい素数のDiffie-Hellman

古いIoT機器が36ビットしかない素数pでDiffie-Hellman鍵共有をしていました。handshake.txtには p, g, A = g^a mod p, B = g^b mod p と、共有鍵から作った鍵ストリームで暗号化された設定データがあります。離散対数を解いて共有鍵を求め、設定データに含まれるフラグを取り出してください。鍵ストリームの作り方はREADME.mdにあります。

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

Web-26. User Profile Managerのプロトタイプ汚染

このNode.js/Express製アプリではログイン中のユーザーが自分のプロフィールを更新できます。更新処理に使われている再帰的なマージ関数が特殊なキーをきちんと除外しているか確認してみましょう。

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

Web-27. GraphQL APIのイントロスペクション漏洩

このGraphQL APIはUserオブジェクトのスキーマを公開しており、イントロスペクションが有効になっています。公式には案内されていないクエリやフィールドが存在しないか調べてみましょう。

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

Web-28. OAuth認可コードの横取り

このOAuth 2.0認可プロバイダーはログインフローを提供していますが、redirect_uriの検証が甘い可能性があります。認可コードを横取りして管理者権限のアクセストークンを得られないか確認してみましょう。

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

Web-29. MongoDBログインフォームのNoSQLインジェクション

このログインポータルはMongoDBを使っており、ユーザー名・パスワードをJSONとしてそのままクエリに組み込んでいます。パスワードを知らなくても管理者としてログインできないか確認してみましょう。

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

Web-30. KinoVaultの安全でないデシリアライズ

レガシーなバックアップシステム「KinoVault」は、ユーザーセッションをPythonのpickleでシリアライズしてCookieに保存していると噂されています。Cookieの形式を解析し、悪意あるpickleペイロードで権限を昇格できないか調べてみましょう。

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

ネットワーク解析 - HTTPのchunkedとgzipをTCPから復元

capture.pcapには、1本のTCP接続で2回行われたHTTPのやり取りが記録されています。サーバーからのセグメントは順番が入れ替わり、一部は再送で重複しています。2回目の応答(GET /api/export)はchunkedとgzipが重なっています。TCPストリームを組み立て直して応答を取り出し、管理者のAPIキー(フラグ)を見つけてください。

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

ネットワーク解析 - TCP再送差分の隠れチャネル

capture.pcapには同一TCPシーケンス番号を持つ再送パケットがあります。ペイロードが変化した再送だけを抽出し、同じシーケンス番号の2つの1バイトペイロードをXORして、シーケンス番号順にフラグを復元してください。

暗号Level 4★★★★☆

暗号解析 - 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 を復号してフラグを得てください。

暗号Level 4★★★★☆

暗号解析 - RSAのWiener攻撃

組み込み機器の開発チームが、復号を速くするためRSAの秘密指数dをとても小さくして鍵を作りました。public_key.txtの公開指数eはnと同じくらい大きな数です。e/nの連分数展開からdを求めて ciphertext.txt を復号し、フラグを取り出してください。

暗号Level 4★★★★☆

暗号解析 - 線形合同法の内部状態の復元

あるサービスは、セッショントークンも暗号化の鍵ストリームも、パラメーターa, c, mが秘密の線形合同法 x_{k+1} = (a×x_k + c) mod m から作っていました。tokens.txtの連続した10個の出力からa, c, mを復元し、続きの出力を8バイトずつ並べた鍵ストリームで暗号化された secret.enc.hex を復号して、フラグを取り出してください。

ネットワークLevel 5★★★★★

ネットワーク解析 - IPv4重複フラグメントの再構築

fragments.pcapのIPv4 ID 0xbeefのUDPデータグラムは、重複するフラグメントで一部のデータが上書きされています。到着順で後着断片を優先して再構築し、UDPペイロードのBase64データからフラグを復元してください。

暗号Level 5★★★★★

暗号解析 - RSA e=3ブロードキャスト攻撃

broadcast.jsonには同じ平文をパディングなしRSA・e=3で3つの互いに素なmodulusへ暗号化した結果があります。中国剰余定理と整数立方根で平文を復元してください。