重複の可能性:
C でのスタック オーバーフローの悪用
次のプログラムのスタック オーバーフローの脆弱性を悪用するプログラムを作成する必要があります。私はこの種のことをしたことがありません。理論上、スタックとオーバーフローの両方がどのように機能するかを理解しています。しかし、私は C での実装について無知です。これで私を助けてください。スタックをオーバーフローさせてシェル コードを生成するために必要な手順を明確に理解する必要があります。
#include <stdio.h>
int myprint(char* argv1)
{
printf("%s", argv1);
}
void foo(char* argv1, char* argv2)
{
int (*fptr)(char*) = myprint;
char buf[12];
strcpy(buf, argv1);
fptr(argv2);
}
int main(int argc, char **argv)
{
if (argc < 3)
{
printf("error\n");
return;
}
foo(argv[1], argv[2]);
}
ありがとう