Pointer Redirecting

HackTricksをサポートする

文字列ポインタ

関数呼び出しがスタックにある文字列のアドレスを使用する場合、バッファオーバーフローを悪用してこのアドレスを上書きしバイナリ内の別の文字列のアドレスを置くことが可能です。

例えば、system関数呼び出しがコマンドを実行するために文字列のアドレスを使用する場合、攻撃者はスタックに別の文字列のアドレスexport PATH=.:$PATHを置き、現在のディレクトリに新しい文字列の最初の文字の名前のスクリプトを作成することができます。これにより、バイナリによって実行されます。

以下にを示します:

関数ポインタ

文字列ポインタと同様ですが、関数に適用されます。スタックに呼び出される関数のアドレスが含まれている場合、それを変更することが可能です(例:**system**を呼び出すために)。

以下に例を示します:

参考文献

HackTricksをサポートする

Last updated