今日は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を入力すると
パスワードが出力されます!
飛べたらいいな~





