什么!只越界了1个字符也能PWN?
在内存溢出的场景下,我们一般都会假设这样一个事情,即可以越界写入很多数据。
栈溢出下的OffByOne
以栈溢出为例,我们不仅需要填充本地缓冲区变量,还需要一直覆盖到rbp + 0x8
到rbp + 0x10
的位置,因为rbp + 0x8
和rbp + 0x10
之间的区域,存放的是被调用函数的返回地址,来方便我们控制程序的执行流程。
但是,根据一则江湖传闻来讲,只溢出1个字节时,也可能导致rip
被控制。
产生这种的情况的原因,通常来自与GLibC中两个坑爹函数的特性。
令人误解的库函数
首先strcpy
和strlen
是C语言中两个非常常用的函数,其中strlen
接受一个字符串指针作为参数,它会返回字符串中可用字符的数量,其中由于
评论