缓冲区溢出漏洞利用,覆盖包括返回地址在内的函数参数

时间:2013-03-13 08:39:58

标签: security buffer-overflow exploit

假设我们有一个功能

foo(char *name,int id)
{  
 printf ("%s%d",name,id);
}

使用缓冲区溢出,我们用foo函数地址替换堆栈上的返回地址。我能够做到这一点。

我如何溢出函数参数? foo有两个参数,请有人帮我理解如何使用缓冲区溢出来溢出这些参数。

1 个答案:

答案 0 :(得分:0)

理论上是的,当调用函数时,参数被压入堆栈,但成功覆盖取决于堆栈的布局。此外,您必须以某种方式实现目标,以免破坏其间的数据。

上面的代码也有另一个漏洞,请考虑一下。