0

Linuxで単純なバッファオーバーフロー攻撃を試みています。コマンドライン引数を受け入れる脆弱なプログラムがあります。実行したいコード(通常はシェルコード)を持つ環境変数を設定する別のプログラムがあります。現在、脆弱なプログラムのバッファをこの環境変数のアドレスでオーバーフローさせようとしています。次の質問があります。

  1. コマンドライン引数として環境変数を渡すと、変数の内容が脆弱なプログラムのargvにコピーされますか?

  2. プロセスのアドレス空間のどこに環境変数(コマンドライン引数)が格納されますか?それはプロセススタックまたは他のどこかにありますか?

4

1 に答える 1

2
  1. はい。
  2. それは実装次第です。

あなたはおそらく次のようなことをしているでしょう:

victim "$SHELLCODE"

$SHELLCODEが環境変数でもある場合、プログラムは環境内で1つのコピーを取得し、その前に、SHELLCODE=を介して取得できるようにし、引数リストgetenv()で1つのコピーを取得します。argv

于 2012-09-09T19:17:33.200 に答える