問題概要
picoCTFの「Scan Surprise」という問題の解説記事です。
- カテゴリ: Forensics
- 難易度: Easy
問題文
解説
この問題では、与えられたZIPファイル
challenge.zip を解析して、隠されたフラグを見つけることが求められます。ステップ1: ZIPファイルの内容確認
まずは、ZIPファイルの内容を確認します。
unzip コマンドを使用します。$ unzip challenge.zip
Archive: challenge.zip
creating: home/ctf-player/drop-in/
extracting: home/ctf-player/drop-in/flag.png
challenge.zip には home/ctf-player/drop-in/flag.png というPNGファイルが含まれていることがわかります。ステップ2: PNGファイルの確認
次に、PNGファイルの形式を確認します。
file コマンドを使用します。$ file home/ctf-player/drop-in/flag.png
home/ctf-player/drop-in/flag.png: PNG image data, 99 x 99, 1-bit colormap, non-interlaced
この出力から、
flag.pngは確かにPNG画像ファイルであることがわかります。ステップ3: 画像の表示
PNGファイルが正しく画像として扱えることが確認できたので、実際に画像を開いて内容を確認します。
※ローカル環境であれば、コマンドを使わずに画像ビューアで直接開くことができます。
※ローカル環境であれば、コマンドを使わずに画像ビューアで直接開くことができます。
$ xdg-open home/ctf-player/drop-in/flag.png
画像を開くとQRコードが表示されました。
ステップ4: QRコードの解析
QRコードを解析するために、
zbarimg コマンドを使用します。$ zbarimg home/ctf-player/drop-in/flag.png
QR-Code:picoCTF{xxxxx}
※フラグはマスクしています。
以上でフラグを取得できました。
使用したコマンドの軽い解説
unzip
unzip challenge.zip
ZIPファイルを展開します。展開後にどのようなファイル/ディレクトリが作られたかも出力から確認できます。
file
file home/ctf-player/drop-in/flag.png
拡張子ではなく、ファイル本体のシグネチャ(マジックナンバー)から形式を判定します。 CTFでは拡張子偽装があり得るので、最初に実行しておくと安心です。
xdg-open
xdg-open home/ctf-player/drop-in/flag.png
Linuxのデスクトップ環境で、既定の画像ビューアなどを使ってファイルを開きます。 (GUIがない環境では使えないことがあります。)
zbarimg
zbarimg home/ctf-player/drop-in/flag.png
画像内のQRコード/バーコードを解析して、中身(今回ならフラグ文字列)を表示します。
まとめ
この問題は「ZIP → 画像 → QRコード」という段階を踏んでフラグを取得する内容でした。
▼ポイントは以下の通りです。
- まず
unzipで中身を確認する fileで形式を確かめてから解析に入る- QRコードは
zbarimgで機械的に読み取る
閲覧ありがとうございました!
NEXT
次におすすめ
読み終わったら、そのまま次へ
【picoCTF】Secret of the Polyglot - PNGとPDFのポリグロットファイルから2つのフラグ断片を復号
カテゴリ: Forensics難易度: Easy#picoCTF
次の記事へ →
同じカテゴリ/難易度/picoCTFでの表示順が近い記事を優先しておすすめしています。