🗂

Picoctfの解説#2 First Find

2025/02/06に公開

解説する問題

PicoCTFの解説をしていきます。
本日の問題はこちら
First Find です。
https://play.picoctf.org/practice/challenge/320?difficulty=1&page=1&search=first find

環境

Hyper-V上に構築した、Ubuntu24.04です。

解説

まずは、CTFの定石通り、ダウンロードしたファイルの詳細をfileコマンドで確認する。

file files.zip
files.zip: Zip archive data, at least v1.0 to extract, compression method=store

コマンドの出力結果の通り、zipファイルだることが確認できました。
zipファイルなので解凍していきましょう。
Linux上でファイルを解凍するには、unzipコマンドで解凍することができます。
unzipコマンドの詳細は、下記サイトにて紹介されています。
https://atmarkit.itmedia.co.jp/ait/articles/1607/26/news014.html
さっそく、unzipコマンドでファイルを解凍しましょう。

$ unzip files.zip
Archive:  files.zip
   creating: files/
   creating: files/satisfactory_books/
   creating: files/satisfactory_books/more_books/

※複数行続いているので、3行のみ表示してます。
中身を確認するとファイル内にファイルがある階層構想になっていたり、テキストが格納されていたりします。
まずは解凍したfilesフォルダの中にcdコマンドを使用して移動します。

cd files

そして、ファイルの中身はlsコマンドを使用して確認します。

ls
13771.txt.utf-8  acceptable_books  satisfactory_books
14789.txt.utf-8  adequate_books

このように複数のファイルとテキストが確認できました。
ということは、どれかのテキスト内にフラグが隠されているのではないかと推測します。
そこでgrepコマンドを使用して、ファイル内を検索してみましょう。
コマンドの内容としては、
grep [検索したい文字列] [検索したいファイル名]
といった形です。
今回は、ファイルの中にファイルが格納されている階層構想になっているため、再帰的に検索を行う必要があります。
そのため、オプションのrを使用します。

grep -r pico files/*
files/14789.txt.utf-8:brassa un picotin d'orge_. Comme depuis une demi-heure environ c'était
files/adequate_books/more_books/.secret/deeper_secrets/deepest_secrets/uber-secret.txt:picoCTF{f1nd_15_f457_ab443fd1}

結果が出力されました。
予想通り、フラグが取得できました。

まとめポイント

CTFでは複数のフォルダやテキストが提示された場合は、まずはgrepコマンドを使用して、フラグを探してみることが大事です!

Discussion