4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CTFに入門!

Last updated at Posted at 2025-07-27

はじめに

ITスクールRareTECHで学習しているゆーせーです。先日RareTECHのオフラインイベントに参加しました!
そこでチーム対抗でCTFを行いました!

CTFとは?
CTFを初めて聞いたとい方もいると思います。しかし今回はメインテーマではないので、簡潔に説明します。
CTFとは、情報セキュリティの分野では、専門知識や技術を駆使して隠されているFlag(答え)を見つけ出し、時間内に獲得した合計点数を競うハッキングコンテストを指します。
そのCTFの問題で私が担当していた問題でどのチームも解くことが出来なかった問題を後日解きなおし、正解することができたので、どのように正解を導いたのかを私のアウトプットも含め記事にしたいと思いました。
最後までお付き合いいただけたらと思います。

What is binary

まず今回私が解いた問題が下記になります!
image.png
初めにflag.pdfをダウンロードしました。
その際に私が行ったこと。
1.普通にPDFとして開いてみる
image.png

2.cat flag.pdfで中身を見てみる
flag.pdfNondecode.png

これ以上何をすればいいのかわからなかったのでここでヒントです。
image.png

Base64とは?
データを文字列に変換する方法(エンコード方式)

このヒントから「あ、catで出力された中身をデコードすればいいんだ!」と思い、デコードを行いました。
flag.pdfdecode.png
デコードする前と変わらずわけがわからない文字列が出力されました。

ここでまたヒントです。
「それまだデコードできてないよ?
と言われ再度デコードを行います。
flag.pdfdecode2.png
次は文字化けしたものが出力されました。
ここまで来たら「あとは文字コードを変更すればいいんじゃないか!」と思い、下記の文字コードを試した。
1.UTF-8
2.Shift-JIS
3.EUC-JP
しかしなんの変化もなかったため、これはバイナリ形式の可能性がある(インターネット調べ)となりました。
バイナリファイルの可能性があることから先頭のバイト列(マジックナンバー)を調べました。
マジックナンバー例

ファイル形式 マジックナンバー(16進数)
ZIP 50 4B 03 04
PNG 89 50 4E 47 0D 0A 1A 0A
PDF 25 50 44 46
JPEG FF D8 FF
xxd -l 32 flag_decode2.pdf

-l 32は先頭32バイトのみ表示する指定
・出力結果:

00000000: 504b 0304 1400 0000 0800 2f79 fa5a 4bc0  PK......../y.ZK.
00000010: d19f 31ca 0000 736c 0100 0800 1c00 666c  ..1...sl......fl

上記の先頭を見るとZIPファイルか、ZIPベースの形式である可能性が高くなりましたが、まだ確信はできなかったため、下記のコマンドを実行しました。

fileコマンドを実行すると:

file flag_decode2.pdf

出力がこうなりました:

Zip archiva data, ....

上記2つの情報から「このファイルはZIP形式」と判断できました。

続いて行った対応

1.ファイル名を.zipに変更

mv flag_decode2.pdf flag_decode2.zip

2.zipファイルとして展開できるか確認

unzip flag_decode2.zip -d decode/

3.展開したフォルダの中を確認
展開.png

4.展開したフォルダの中に入っていたファイルを確認
・ファイル形式を確認:

file flag.pdf

・出力結果:

flag.pdf: PNG image data, 3304 x 861, 8-bit/color RGBA, non-interlaced

上記の出力結果からPNG形式だと判明し、flag.pdfのファイル形式を変更
・PNG形式に変更:

mv flag.pdf flag.png

このPNGファイルをエクスプローラーから開くと:
答え.png
(同じイベントに参加された方のために答えは伏せます)

まとめ

今回初めてCTFに参加させていただいて、時間があっという間に過ぎてしまうほど楽しませていただきました。1問解くだけでたくさんのことを学ぶことが出来ました!
正解したときの脳汁は半端ないです笑
今回を機にCTFの問題にも少しづつ挑戦していきたいなと思いました!
最後までお付き合いいただきありがとうございました:bow_tone5:

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?