标签:info 溢出 地址 一般来说 变量 还需 href 操作系统 image
利用原理
ret2shellcode,即控制程序执行 shellcode 代码。一般来说,shellcode 需要我们自己填充。这其实是另外一种典型的利用方法,即此时我们需要自己去填充一些可执行的代码。
在栈溢出的基础上,要想执行 shellcode,需要对应的 binary 在运行时,shellcode 所在的区域具有可执行权限。
? ?
利用关键:
1、程序存在溢出,并且还要能够控制返回地址
2、程序运行时,shellcode 所在的区域要拥有执行权限
3、操作系统还需要关闭 ASLR (地址空间布局随机化) 保护 。
? ?
解题步骤:
使用GDB的vmmap查看bss段(一般为用户提交的变量在bss段中)
? ?
system函数
在正常调用system函数的时候,堆栈位置的system_plt之后的内容为system函数的返回地址,在之后才是新的堆栈的栈顶位置,因此在system_plt和sh_addr之间增加了4个字符来进行填充。
? ?
? ?
标签:info 溢出 地址 一般来说 变量 还需 href 操作系统 image
原文地址:https://www.cnblogs.com/da1sy/p/12299134.html