


exploit.pyの出力結果を sample3.c の cpy関数に渡すことで、root権限で /bin/sh を実行
・バッファオーバーフローによって、メモリ上の%ebpとret_addrを上書き
・ret_addrは処理が終了した後、mainへ戻るためのアドレスが格納されている
・これが上書きされると、攻撃者が用意したコードに飛べることになる
・つまり、任意のコードが実行できる脆弱性となる
[Tips]
-S オプションを付けてコンパイルすると、アセンブラにした .s ファイルが作成できる
それをcatコマンドなどで表示するとアセンブラが確認できる
攻撃者が用意するシェルコード(攻撃のためのC言語+マシン語)

unsigned char でシェルコードを宣言しているのがわかる
バッファオーバーフローを起こして、戻りアドレスのところに上記シェルコードを置いておけば、管理者権限を奪取できる