【picoCTF】CanYouSee - 画像に隠されたフラグを見つけ出す

問題概要

picoCTFの「CanYouSee」という問題の解説記事です。

  • カテゴリ: Forensics
  • 難易度: Easy

問題文

picoCTF CanYouSee

解説

ステップ1: ZIPファイルの確認

問題文に添付されているunknown.zipファイルをダウンロードし、解凍します。
$ unzip unknown.zip 
Archive:  unknown.zip
  inflating: ukn_reality.jpg      
解凍後、ukn_reality.jpgというJPEG画像ファイルが作成されます。

ステップ2: 画像ファイルの調査

ukn_reality.jpgファイルを確認します。画像ビューアで確認します。
$ xdg-open ukn_reality.jpg
ukn_reality.jpg
画像自体には特にヒントは見当たりません。フラグも見えません。
めっちゃきれいな場所の写真ですね。どこなんでしょうか?

ステップ3: 画像ファイルのメタデータ調査

画像ファイルにメタデータが含まれている可能性があるため、exiftoolを使用してメタデータを調査します。
$ exiftool ukn_reality.jpg 
ExifTool Version Number         : 12.76
File Name                       : ukn_reality.jpg
Directory                       : .
File Size                       : 2.3 MB
File Modification Date/Time     : 2024:02:16 07:40:14+09:00
File Access Date/Time           : 2026:01:31 15:48:25+09:00
File Inode Change Date/Time     : 2026:01:31 15:44:44+09:00
File Permissions                : -rwxrwxrwx
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : inches
X Resolution                    : 72
Y Resolution                    : 72
XMP Toolkit                     : Image::ExifTool 11.88
Attribution URL                 : cGljb0NURntNRTc0RDQ3QV9ISUREM05fZGVjYTA2ZmJ9Cg==
Image Width                     : 4308
Image Height                    : 2875
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 4308x2875
Megapixels                      : 12.4
メタデータの中にAttribution URLというフィールドがあり、Base64エンコードされた文字列が含まれています。

ステップ4: Base64デコード

Attribution URLフィールドのBase64エンコードされた文字列をデコードします。
$ echo "cGljb0NURntNRTc0RDQ3QV9ISUREM05fZGVjYTA2ZmJ9Cg==" | base64 -d
picoCTF{xxxxx}

※フラグはマスクしています。

デコード結果からフラグが取得できました。


つまずきポイント(補足)

exiftool が入っていない場合

環境によっては exiftool が入っていないことがあります。その場合はインストールしてから実行してください。
  • Ubuntu/Debian 系: sudo apt install exiftool

使用したコマンドの軽い解説

unzip

unzip unknown.zip

ZIPを解凍するコマンドです。まずは配布物の中身を取り出します。

xdg-open

xdg-open ukn_reality.jpg

Linux環境でデフォルトのアプリでファイルを開きます。まずは“見た目”にヒントが無いか確認します。

exiftool

exiftool ukn_reality.jpg

画像・動画などのメタデータを表示するツールです。 Forensics では「まず exiftool」くらい定番です。

base64

echo "..." | base64 -d

Base64文字列をデコードします。CTFでは「メタデータ/コメント欄/ログ」などに Base64 が紛れていることがよくあります。


まとめ

この問題は、画像ファイルに隠されたフラグを メタデータから拾って復号するタイプでした。

▼ポイントは次の通りです。

  • 画像に何も見えないときは、exiftool でメタデータを疑う
  • Base64っぽい文字列(末尾が = など)を見つけたらデコードしてみる

閲覧ありがとうございました!

NEXT
次におすすめ

【picoCTF】Bookmarklet - ブックマークレットでフラグを復号して表示する

カテゴリ: Web Exploitation難易度: Easy#picoCTF
次の記事へ →
同じカテゴリ/難易度/picoCTFでの表示順が近い記事を優先しておすすめしています。