は、私はシンプルなCプログラムがあります。それは、これはセキュリティ上の脆弱性を表して私の理解であるフォーマット文字列の脆弱性
char user_input[100];
scanf("%s", user_input);
printf(user_input);
を。例えば%xの束を入力するとスタックの内容が表示されます。
しかし、どのように選択したメモリの場所を印刷できますか?
私がいることを読ん:
\x10\x01\x48\x08_%08x.%08x.%08x.%08x.%08x|%s|
がthis paperから場所0x08480110のメモリの内容をダンプするべきです。しかし代わりに、次の4バイトをスタック上のフォーマット文字列に出力しています。私はなぜそれを理解しようとしています。
これは木の森であり、バッファオーバーフローを呼び出すために99文字以上を入力します。リトル・ボビー・テーブルの話は、サニタイズ入力ではない。 –