LoginSignup
0
0

More than 3 years have passed since last update.

picoCTF 2019 NewOverFlow-2 - Points: 250

Posted at

問題

image.png

解いてみた

いやこの問題も前までありませんでしたよね?
オーバーフロー勉強したいのでありがたいですが。

ソースを見ます。

image.png

image.png

ちょっと長めです。
main()から軽く見るとvuln()を呼んで終了。
呼ばれないflag()がある。

vuln()からmain()に戻るときに戻り先をflag()にすればよい?
win_fn2()とwin_fn()は必要?
何かの罠?

罠かわかりませんが、vuln()のリターンアドレスを変更する作戦でやってみます。

まずはflag()のアドレスを調べます。

image.png

flag()の先頭は0x000000000040084dだということがわかりました。
桁数多いから64bitぽいです。

image.png

やはり64bitでした。

つぎはvuln()のリターンアドレスが格納される位置を確認します。
適当に200文字入れてどうなるか確認します。

image.png

ということで0x4e6a6b50が格納されていました。
これをCyberChefで確認します。
リトルエンディアンに気を付けます。

image.png

PkjNです。

image.png

73文字目でした。
ではここをflag()の先頭アドレスである0x000000000040084dにします。

image.png

やっぱよくわからないんですが、64bitの時は1つずらさないといけないみたいです。
そしてwin_fn2()とwin_fn()はなんだったんでしょうか?

pwnかなり苦手意識あったけど、このくらいのイージーレベルならさくっと解けるようになってきた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0