一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • SECCON Beginners CTF 2020 Reversing yakisoba のちょっとしたwriteup

はじめに

 

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”)
e = p.factory.entry_state()
simgr = p.factory.simulation_manager(e)simgr.explore(find=lambda s: b”Correct!” in s.posix.dumps(1))s = simgr.found[0]
s.posix.dumps(0)

単純に最終出力に「Correct!」と出力させるような入力を探索する。

その出力結果は以下のようになる。

‘ctf4b{sp4gh3tt1_r1pp3r1n0}\x00\xd9\xd9\xd1\xd9’

 

よってフラグは「ctf4b{sp4gh3tt1_r1pp3r1n0}」となる。

 

さいごに

 

今回ほとんど参加できなかったけれど、一問でも解けてよかった。

残りの問題もWriteupを作成して、復習していきます。

The following two tabs change content below.

田口 仁大

最新記事 by 田口 仁大 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア