【write-up】NewbieCTF wriye-up

NewbieCTFに参加してきたのでその時に解けた問題と解けなかった問題につて徒然なるままに。ちなみに大学の同志で立ち上げたCLPWNなるチームで参加し、総合成績は4799点で72位だった。今までで最も良い成績を残す事が出来たがそれだけに自分の貢献度が少なかったように思えるので悔しさも残る結果となった。

【Misc】Catch Me

こんなgifが渡される。

f:id:yamanobori_programing:20191105223136g:plain

数字的にasciiコードに変換するんだろうと思ったので、gifの編集ができるソフトを探してきて点滅のレートを下げて黒点がいる数字を読み取ってasciiコードに変換した。

KorNewbie{w0w_e4g1e_3y3}

【Pwnable】babypwn

入力でgets関数が使用されていてバッファオーバーフロー脆弱性があるバイナリが配布された。過剰な入力の後にleave命令実行後にsegmentation faultが発生した。バイナリはflag1関数に遷移した時にflagが表示され、flag2関数に遷移した時にsystem関数が呼び出されて、そのままshellが立ち上がるようになっていた。flag1とflag2に遷移してくれる攻撃コードとして以下のものを用意した。ファイル名はNewbieCTF_flag1.txtとNewbieCTF_flag2.txtがそれぞれflag1とflag2を呼び出す攻撃コードになっている。

github.com

local環境でsocatでgdbserverを立ち上げて攻撃コードがうまく動いてflag1とflag2を呼び出すことに成功していたが、実際の環境で試してみたら案の定うまくいかなかった。ちなみに環境はkali linux