問題概要
picoCTFの「CanYouSee」という問題の解説記事です。
- カテゴリ: Forensics
- 難易度: Easy
問題文
解説
ステップ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
画像自体には特にヒントは見当たりません。フラグも見えません。
めっちゃきれいな場所の写真ですね。どこなんでしょうか?
めっちゃきれいな場所の写真ですね。どこなんでしょうか?
ステップ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での表示順が近い記事を優先しておすすめしています。