チャレンジ一覧

絞り込みを解除

47 問 (1 / 2 ページ)

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

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

コンテナの起動時に、株価API が http://localhost:9102 で動き始めます(server.py を起動する必要はありません)。5銘柄・約2000件の取引を GET /api/stocks と GET /api/stocks/<symbol> で取得し、sell_price - buy_price が最大の取引を1件だけ見つけて、その id を POST /api/check に {"id": "..."} の形で送ってください。正しい id のときだけ応答にフラグが含まれます。取引データは起動のたびに作り直されます。誤答は3回までで、超えるとそのコンテナでは正解でも受け付けられなくなります。

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

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

Apache access.log(common 形式)を解析して、SQLインジェクション攻撃の痕跡を見つけましょう。攻撃が成功したのか失敗したのかを見分け、攻撃者が仕込んだ内容を読み取ってください。 ログ解析とパターンマッチングを学びます。 提供ファイル: access.log

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

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

Excelマクロ付きブックに埋め込まれたマクロのコードを解析して、隠された認証コード(フラグ)を見つけましょう。 Office文書のマクロ解析方法を学びます。この教材では、マクロのソースはテキストでファイルの中に入っています。 提供ファイル: spreadsheet.xlsm

LinuxLevel 2★★☆☆☆

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

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

LinuxLevel 2★★☆☆☆

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

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

LinuxLevel 2★★☆☆☆

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

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

LinuxLevel 2★★☆☆☆

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

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

LinuxLevel 2★★☆☆☆

Linux-シンボリックリンク迷路. 分岐する道を辿り抜け

複数のディレクトリがシンボリックリンクで複雑に繋がっています。おとりのヒントファイルに惑わされず、リンクを1つずつ辿って本物のフラグファイルまでたどり着いてください。

LinuxLevel 2★★☆☆☆

Linux-スクリプトデバッグ. 壊れたbashスクリプトを直せ

このスクリプトには複数の意図的なバグ(タイポ、構文ミスなど)が仕込まれており、最後まで実行されません。bashのデバッグ機能を使ってバグを1つずつ直してください。

LinuxLevel 2★★☆☆☆

Linux-ネットワーク基礎. リッスン中のポートに接続せよ

このシステムではバックグラウンドで特定のポートをリッスンするサービスが起動しています。ss/netstatでポートを特定し、ncで接続してフラグを受け取ってください。

LinuxLevel 2★★☆☆☆

Linux-バックアップ探索. 紛れ込んだ一時ファイルを見抜け

プロジェクトディレクトリには .bak や .tmp、~ で終わる紛らわしいバックアップ/一時ファイルが複数あります。本物のフラグは隠しファイルの中に隠れています。

LinuxLevel 2★★☆☆☆

Linux-パイプライン. grepとawkの連携でログを絞り込め

アクセスログには大量のアクセス記録が含まれています。あるIPアドレスが短時間に多数の404を出しており、その一連のリクエストのパスをつなげるとフラグになります。grep・awk・sort・uniq などをパイプで組み合わせて組み立ててください。

LinuxLevel 2★★☆☆☆

Linux-パッケージ情報. インストール済みパッケージの詳細を調べよ

このシステムには自作のdebパッケージがインストールされています。dpkgやaptを使ってパッケージの詳細情報を確認し、その説明文に隠された情報を見つけてください。

LinuxLevel 2★★☆☆☆

Linux-プロセス追跡. 動き続けるプロセスの正体を暴け

複数のバックグラウンドプロセスが動いている中に、コマンドライン引数にフラグを持つものが1つ紛れています。psコマンドで一覧を確認し、それを見つけ出してください。

LinuxLevel 2★★☆☆☆

Linux-ユーザー調査. awkで対象ユーザーを絞り込め

このシステムには複数のユーザーが登録されています。/etc/passwdをawkで解析して特定の条件に合うユーザーを見つけ、そのホームディレクトリの隠しファイルを確認してください。

LinuxLevel 2★★☆☆☆

Linux-ログローテーション. 圧縮された過去ログを検索せよ

ログローテーションによって一部の古いログファイルはgzip圧縮されています。展開せずに圧縮ファイルの中身を検索するコマンドを使ってフラグを探してください。

LinuxLevel 2★★☆☆☆

Linux-ログ探索. 複数ログファイルからフラグを掘り出せ

アプリケーションログとシステムログの複数ファイルが用意されています。DEBUGレベルの1行だけにフラグが埋め込まれているので、grepなどで絞り込んで見つけてください。

LinuxLevel 2★★☆☆☆

Linux-環境変数の秘密. FLAGという名の変数を探せ

このシステムには複数の環境変数(ダミーの認証情報を含む)が設定されています。envコマンドで一覧を確認し、フラグを保持している変数を見つけてください。

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

PDFの隠されたストリーム

PDFファイルには、圧縮されたオブジェクトストリームが含まれています。 ページに表示されない社内メモがその中に隠れています。そのメモからフラグを見つけましょう。 PDF内部構造を理解し、隠されたデータを抽出する方法を学びます。 提供ファイル: document.pdf

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

Python演習 - Base64ストリームの一括デコード

起動のたびに作られる data.txt(約150行)の各行は Base64 です。1行ずつデコードし、結果が "b64:" で始まるときは、残りをさらに Base64 デコードします(何段か続く行があります)。デコードできない行(壊れた Base64、文字として読めないバイト列)は飛ばしてください。最後に "frag[i/8]=xxxx" の形になった行が本物の断片で、"old-frag[...]" や "test-frag[...]" などはおとりです。本物の断片の xxxx(4文字)を i の昇順につないだ32文字が答えです。python3 challenge.py '<答え>' に渡すと、フラグが表示されます。

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

Python演習 - CSV売上データの条件抽出

起動のたびに作られる data.txt は売上 CSV(transaction_id,date,product_id,amount,status,ref,notes)です。amount が 10000 以上、status が completed(大文字・小文字も含めて完全一致)、product_id が SEC- で始まる、の3条件をすべて満たす取引は複数あります(条件を1つだけ満たさない紛らわしい行がたくさん混ざっています)。それらの ref 列を transaction_id の昇順に並べて '-' でつないだものが答えです。python3 challenge.py '<答え>' に渡すと、フラグが表示されます。

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

Python演習 - JSONユーザーデータの複合検索

起動のたびに作られる JSON の data.txt({"users": [...]})を調べます。各ユーザーは id, name, email, role, active, token を持ちます。role が "admin"(完全一致)、active が true、email に "@secret.com" を含む、の3条件をすべて満たすユーザーは複数います(条件を1つだけ満たさない紛らわしいユーザーがたくさん混ざっています)。それらの token を id の昇順に並べて '-' でつないだものが答えです。python3 challenge.py '<答え>' に渡すと、フラグが表示されます。

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

Python演習 - アクセスログから対象IPを追跡

起動のたびに作られる data.txt(約1300行)は Web サーバーのアクセスログです。192.168.1.100 のアクセスだけを取り出してください(192.168.1.10 や 192.168.1.101 など、似た IP のおとりが混ざっています)。この IP は "GET /notes?part=N&data=XXXX" で12個の断片を送っていますが、ステータスが 200 の行だけが有効で、404 や 500 は失敗した送信なので数えません。有効な data(4桁の16進)を part の昇順(時刻順ではありません)につないだ48文字が答えです。python3 challenge.py '<答え>' に渡すと、フラグが表示されます。

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

Python自動化 - Base64の一括デコード

起動のたびに作られる data.txt(約150行)の各行は Base64 です。1行ずつデコードし、結果が "b64:" で始まるときは、残りをさらに Base64 デコードします(何段か続く行があります)。デコードできない行(壊れた Base64、文字として読めないバイト列)は飛ばしてください。最後に "frag[i/8]=xxxx" の形になった行が本物の断片で、"old-frag[...]" や "test-frag[...]" などはおとりです。本物の断片の xxxx(4文字)を i の昇順につないだ32文字が答えです。python3 challenge.py '<答え>' に渡すと、フラグが表示されます。