补充:有点迷,感觉像是Return2libc,通篇攻击貌似没有涉及到PTL
具体内容在http://netsecurity.51cto.com/art/201703/534647.htm,这里摘取操作步骤,原理有待以后补充
关于PLT的介绍来自http://pwdme.cc/2017/09/26/lazy-binding-in-detail/
最后解释了一下为什么写入数据字节数是28个A
Procedural Linkage Table,也就是PLT是过程链接表,为每个全局变量保存了一段代码,第一次调用一个函数会调用形如function@PLT的函数,这就是跳到了函数对应的PLT表开头执行,会解析出函数真正的地址填入GOT表中,以后调用时会从GOT表中取出函数真正的起始地址执行。
Global Offset Table,也就是GOT表为每个全局变量保存了入口地址,在调用全局变量时,会直接调用对应GOT表条目中保存的地址,而不调用绝对地址。
1、待攻击代码:
#include <stdio.h>
#include <string.h>
#include &l