問題概要
picoCTFの「Riddle Registry」という問題の解説記事です。
- カテゴリ: Forensics
- 難易度: Easy
問題文
解説
この問題では、与えられたファイル
confidential.pdf を解析して、隠されたフラグを見つけることが求められます。ステップ1: PDFファイル形式の確認
まずはファイル形式の確認から始めます。fileコマンドを使って、
confidential.pdf の形式を確認します。$ file confidential.pdf
confidential.pdf: PDF document, version 1.7, 1 page(s)
この出力から、
confidential.pdf はPDFドキュメントであることがわかります。ステップ2: メタデータの確認
次に、PDFファイルのメタデータを確認します。
※
pdfinfoコマンドを使用します。※
poppler-utilsが必要なのでインストールしてください。$ pdfinfo confidential.pdf
Author: cGljb0NURntwdXp6bDNkX20zdGFkYXRhX2YwdW5kIV9jYTc2YmJiMn0=
Producer: PyPDF2
Custom Metadata: no
Metadata Stream: no
Tagged: no
UserProperties: no
Suspects: no
Form: none
JavaScript: no
Pages: 1
Encrypted: no
Page size: 612 x 792 pts (letter)
Page rot: 0
File size: 182705 bytes
Optimized: no
PDF version: 1.7
ここで、
Authorフィールドに注目します。Authorには通常、PDFの作成者情報が含まれますが、今回はエンコードされた文字列が含まれています。文字列は終端が
=であることから、Base64エンコードされている可能性が高いです。ステップ3: Base64デコード
Authorフィールドの値をBase64デコードしてみます。Linuxのbase64コマンドを使用します。$ echo 'cGljb0NURntwdXp6bDNkX20zdGFkYXRhX2YwdW5kIV9jYTc2YmJiMn0=' | base64 -d
picoCTF{*********}
フラグを取得できました。 ※フラグは伏せ字にしています。
使用したコマンドの軽い解説
file
file <ファイル名>
fileコマンドは指定したファイルの種類を判別します。拡張子ではなく、ファイルの中身(マジックナンバー)を基に判別します。
ctfでは拡張子が偽装されていることが多いため、ファイル形式の確認に役立ちます。
ctfでは拡張子が偽装されていることが多いため、ファイル形式の確認に役立ちます。
pdfinfo
pdfinfo <PDFファイル名>
pdfinfoコマンドはPDFファイル専用の情報表示ツールです。
PDFのメタデータ(作成者、ページ数、サイズなど)を確認できます。
ctfでは、メタデータに隠し情報が含まれていることがあるため、解析に役立ちます。
ctfでは、メタデータに隠し情報が含まれていることがあるため、解析に役立ちます。
base64
echo '<Base64エンコード文字列>' | base64 -d
base64コマンドはBase64エンコードおよびデコードを行うツールです。
ctfでは、Base64エンコードされたデータがよく使われるため、デコードに役立ちます。
-dオプションを付けることでデコードが可能です。ctfでは、Base64エンコードされたデータがよく使われるため、デコードに役立ちます。
まとめ
picoCTFの「Riddle Registry」問題では、PDFファイルのメタデータにBase64エンコードされたフラグが隠されていました。
ファイル形式の確認、メタデータの解析、Base64デコードの基本的なスキルが求められる問題でした。
ファイル形式の確認、メタデータの解析、Base64デコードの基本的なスキルが求められる問題でした。
▼ポイントは以下の通りです。
- 拡張子やファイル名に惑わされず、まずはファイル形式を確認する。
- 本文だけでなく、メタデータも解析する。
- 不自然な文字列はエンコードされている可能性があるため、適切なデコードを試みる。
- Base64はctfでよく使われるエンコード方式なので、使い方を覚えておく。
閲覧ありがとうございました!
NEXT
次におすすめ
読み終わったら、そのまま次へ
【picoCTF】Hidden in plainsight - JPEGコメントとsteghideで埋め込まれたフラグを抽出
カテゴリ: Forensics難易度: Easy#picoCTF
次の記事へ →
同じカテゴリ/難易度/picoCTFでの表示順が近い記事を優先しておすすめしています。