今日はftzlevel2を解きます。

まず、前回で得たlevel2のパスワードでlevel2でログインします。

そして、hintファイルを見てみると、

テキストファイル編集中にシェール命令を実行させると。。。。

これはviの話ですね。

前回と同じくfind命令語でlevel3のSUIDが設定されているやつを探します。

ほぉ。。。

開いてみると!!

viですね!

でも、ファイルの大きさはviより小さいし。。

viとかvimにリンクをかけて使ってるのもないし。。。怪しいですね。

 

こういう時はgdbで開いて中身を見てみましょう!

分析をしてみると、setreuid関数を呼び出す前に0xbbbをstackに2回pushしますね。

0xbbbは10進数で3003です!

これは多分level3のidだと思います。

そして、/bin/viをstackにpushしてsystem関数を呼び出します!

ということは、level3の権限でviを実行するという意味ですね。

これをC言語にすると

int main()

{

   setreuid(3003,3003);

   system("/bin/vi");

}

ん。。。簡単すぎかな。。

では回答は

はい!/usr/bin/editorを実行して

:!my-passを入力すると

パスワードが出力されます!

飛べたらいいな~