ROP
文章平均质量分 88
p0int3r
这个作者很懒,什么都没留下…
展开
-
浅谈rop-ret2libc原理以及解答-以攻防世界level3为例
栈溢出-rop-libc0x01、got表和plt表与动态链接、绑定延迟(重点理解)GOT概述1、当在程序中引用某个共享库中的符号时,编译链接阶段并不知道这个符号的具体位置,只有等到动态链接器将所需要的共享库加载进内存后,也就是在运行阶段,符号的地址才会最终确定。因此,需要有一个数据结构来保存符号的绝对地址,这就是GOT表的作用,GOT表中每项保存程序中引用其他符号的绝对地址。这样,程序就可以通过引用GOT表来获得某个符号的地址2、在X86结构中,GOT表的前三项保留,用于保存特殊的数据结构地址,其原创 2021-08-05 14:32:28 · 573 阅读 · 0 评论 -
浅谈ROP-ret2libc原理-题目源于[ctfwiki]
rop:在栈缓冲区溢出的基础上,利用程序中已有的小片段 (gadgets) 来改变某些寄存器或者变量的值,从而控制程序的执行流程。–[ctfwiki]传送门之前提到的ret2syscall,提到了静态链接,而libc主要利用了动态链接。0x01知识点:简单来说,静态链接就是直接在原有的基础之上进行访问,而动态链接就是直接放上一个链接来访问。1.plt表和got表拿一个c语言编写的printf函数为例,当调用printf函数时,先去plt表和got表寻找printf函数的真实地址。plt表指向原创 2020-12-18 00:13:20 · 691 阅读 · 0 评论 -
basic ROP-浅谈ret2syscall原理[ctf-wiki]
一道简单的ctf-wiki上的基本ROP题目。原理:控制程序执行系统调用,获取 shell。传送门0x01预备知识:系统调用通过 int 80h 实现,应用程序调用系统调用的过程是:1.把系统调用的编号存入 EAX;2.把函数参数存入其它通用寄存器;3.触发 0x80 号中断。execve函数:详见:execve函数0x02解题步骤:首先检查:ida打开之后,没有system函数,只有binsh关键字,开启NX保护。需要构造execve(“/bin/sh”, 0,0);其原创 2020-12-17 00:48:06 · 289 阅读 · 0 评论