チャレンジ一覧
02. 隠された秘密 - Base64デコード
Base64は、バイナリデータをテキストで送るために使われるエンコード方式です。 暗号化ではありませんが、パッと見で内容が分からないので隠蔽によく使われます。 次のBase64エンコードされた文字列をデコードしてフラグを見つけましょう: RkxBR3tiYXNlNjRfaXNfbm90X2VuY3J5cHRpb259
03. Linuxの第一歩 - ファイルを探せ
Linuxサーバーに接続できました! ホームディレクトリにフラグが書かれたファイルがあるようです。 基本的なコマンドを使ってフラグを見つけましょう。 使えるコマンド: - ls: ファイル一覧を表示 - cat ファイル名: ファイルの内容を表示 - cd ディレクトリ名: ディレクトリに移動
04. 隠しファイルを探せ
Linuxでは、ファイル名が「.」(ドット)で始まるファイルは「隠しファイル」として 通常のlsコマンドでは表示されません。 サーバー上に隠しファイルがあるようです。探してみましょう!
05. HTMLソースコードの秘密
Webページには、見た目には表示されない情報がたくさん含まれています。 HTMLソースコードを見ると、開発者向けのメモ(コメント)が見つかることがあります。 このページのソースコードを確認してフラグを見つけましょう! ヒント: ブラウザで右クリック→「ページのソースを表示」 または、F12キーで開発者ツールを開く
06. JavaScriptのパスワードチェック
このページにはパスワードで保護されたエリアがあります。 しかし、JavaScriptでパスワードをチェックしているため、 ソースコードを見れば正しいパスワードが分かってしまいます! 開発者ツールでJavaScriptを確認して、正しいパスワードを見つけましょう。
07. Cookieを覗いてみよう
Webサイトは、Cookieという仕組みでブラウザに情報を保存します。 ログイン状態の管理などに使われますが、時には重要な情報が Cookieに保存されていることもあります。 このサイトのCookieを確認してフラグを見つけましょう!
08. ネットワーク基礎 - ポート番号を知ろう
ネットワークでは、ポート番号を使ってサービスを識別します。 例えば、Webサーバー(HTTP)は通常ポート80、暗号化されたWeb(HTTPS)はポート443を使います。 セキュリティ診断では、ポートスキャンで開いているポートを調べ、どんなサービスが動いているかを特定します。 【クイズ】 Q1: HTTPのデフォルトポート番号は? Q2: HTTPSのデフォルトポート番号は? Q3: SSHのデフォルトポート番号は? 分からない場合は「well-known ports」で検索してみましょう。3つすべてに答えられればこのチャレンジはクリアです。フラグ FLAG{know_your_ports} を提出してください。
11. シーザー暗号を解読せよ
シーザー暗号は、古代ローマの将軍ジュリアス・シーザーが使っていた最も古典的な暗号の一つです。 アルファベットを一定の文字数だけずらす(シフトする)ことで暗号化します。 暗号文: IODJ{fdhvdu_flskhu_edvlfv} シフト数を見つけて、フラグを解読しましょう!
12. ファイルシグネチャを見破れ
ファイルには「マジックバイト」と呼ばれる識別情報が先頭に含まれています。 拡張子が偽装されていても、マジックバイトを見れば本当のファイル形式が分かります。 このチャレンジでは、fileコマンドやxxdコマンドを使って 偽装されたファイルの正体を見破りましょう!
13. 画像に隠されたメタデータ
写真や画像には、EXIFと呼ばれるメタデータが含まれています。 このメタデータには、撮影日時、カメラ情報、GPS座標などが記録されています。 image_with_flag.jpgのEXIFデータを確認して、フラグを見つけましょう! 使えるコマンド: - exiftool image_with_flag.jpg - cat image_with_flag.jpg | grep FLAG
14. ROT13の魔法
ROT13(Rotate 13)は、シーザー暗号の一種で、アルファベットを13文字シフトする暗号です。 ROT13の面白い特徴:同じ操作を2回行うと元に戻ります! これは、アルファベットが26文字なので、13の2倍=26だからです。 暗号文: SYNT{ebg13_vf_flzzrgevp} ROT13で解読してフラグを見つけましょう!
15. バイナリから文字列を抽出せよ
バイナリファイル(実行ファイルなど)には、人間が読める文字列が含まれています。 パスワード、URL、エラーメッセージなどのヒントが隠されていることがあります。 mystery_binaryファイルから文字列を抽出してフラグを見つけましょう! 使えるコマンド: - strings mystery_binary - strings mystery_binary | grep FLAG
Linux-01. ログの山からgrepで一本釣り
/var/log/app 以下には大量の日付別ログファイルが並んでおり、その中の1行だけにフラグが紛れ込んでいます。grepやfindを使ってERRORレベルの行を探し出してください。
Linux-SSH鍵探索. 隠れた秘密鍵ファイルを発見せよ
アプリケーションの設定ディレクトリの奥に、秘密鍵らしきファイルが隠れています。findコマンドで拡張子やディレクトリを手がかりに探し出し、中身を確認してください。
Linux-アーカイブ. tarで固められた秘密を解凍せよ
ホームディレクトリに置かれた圧縮アーカイブ(.tar.gz)の中に、フラグが書かれたファイルが隠れています。tarコマンドで展開して中身を確認してください。
Linux-カスタム. 定期実行スクリプトの中身を確認せよ
/usr/local/bin に置かれた定期実行スクリプトと、それを登録しているcron設定を確認してみましょう。スクリプト自身のコメントにヒントが隠れていることがあります。
Linux-サービス設定. Nginx設定ファイルの奥を探れ
/etc 以下には複数のサービス設定ファイルがあります。その中にはダミーの設定と本物のヒントが混在しているので、コメント行も含めてじっくり確認してください。
Linux-シンボリックリンク基礎. リンクの連鎖を最後まで辿れ
1本のシンボリックリンクの連鎖が複数のファイルを繋いでいます。lsやreadlinkでリンク先を確認しながら、実体ファイルにたどり着いてください。
Linux-ディスク使用量. duで肥大化したファイルを追え
隠しディレクトリの中に、通常とは異なるサイズの大容量ファイルが紛れています。duやfindのサイズオプションを使って、その中身を確認してください。
Linux-パーミッション基礎. 実行権限のないスクリプトを動かせ
あるスクリプトファイルには実行権限が付与されていません。パーミッションを確認し、chmodで実行権限を付与してから実行してください。
Linux-ファイルタイプ偽装. fileコマンドで正体を見破れ
拡張子が .jpg でも中身はテキストファイル、ということがあります。fileコマンドで拡張子と実体が一致しないファイルを見破ってください。
Linux-プロセス基礎. sleepコマンドの引数を確認せよ
バックグラウンドで実行されている複数のプロセスの中から、目的のコマンドライン引数を持つプロセスを見つけてください。psコマンドの基本的な使い方を確認する問題です。
Linux-深層探索. findで奥深くのファイルを発見せよ
いくつも入れ子になったディレクトリの奥に、フラグが書かれたファイルが1つだけ隠れています。findコマンドを使って、おとりのファイルに惑わされずに本物を見つけてください。
Linux-環境変数の基礎. シェル起動時の変数を確認せよ
シェルが起動する際に設定される環境変数の中に、フラグを保持するものがあります。envコマンドやecho $変数名で確認してみましょう。