2020/05/23(土) 14:00 ~ 5/24(日)14:00の24時間、SECCON Beginners CTF 2020が開催されました。
「第3回 SECCON Beginners CTF(5月23日)開催終了しました」
https://www.seccon.jp/2019/seccon_beginners/seccon_beginners_ctf_2020_5_23_1400.html
私は残りの15分ほどしか参加できなかった為、ほとんど得点に寄与できませんでした。
その中で、Reversingの問題を解いたので、writeupを残します。
Ubuntu 20.04 LTS 64bit(仮想マシン上にゲストOSとして乗っけています)
fileコマンドでファイル形式を確認する。
ELF形式の64bit版だとわかる。
実行してみる。
「FLAG:」と表示され、入力待ちとなる。
適当に入力しても、「Wrong!」と表示された。
静的解析を試みる。
stringsコマンド確認すると、「FLAG:」や「Wrong!」などの文字が見つかる。
ここで、angrを使って問題を解く。
コードは以下の通り
import sys reload(sys) sys.setdefaultencoding(‘utf-8’) import angr p = angr.Project(“./yakisoba”) |
単純に最終出力に「Correct!」と出力させるような入力を探索する。
その出力結果は以下のようになる。
‘ctf4b{sp4gh3tt1_r1pp3r1n0}\x00\xd9\xd9\xd1\xd9’
よってフラグは「ctf4b{sp4gh3tt1_r1pp3r1n0}」となる。
今回ほとんど参加できなかったけれど、一問でも解けてよかった。
残りの問題もWriteupを作成して、復習していきます。