栈溢出
Eternalstay
这个作者很懒,什么都没留下…
展开
-
栈溢出总结之中级ROP
ret2csu原理:(所谓 gadgets 就是以 ret 结尾的指令序列,通过这些指令序列,我们可以修改某些地址的内容,方便控制程序的执行流程。)在64位程序中,函数的前6个参数是通过寄存器传递的,但是大多时候,我们很难找到每一个寄存器对应的gadgets。而这时我们就可以利用x64下的 __libc_csu_init中的gadgets。这个函数是用来对libc进行初始化操作的,而一般的程...原创 2020-03-01 14:44:22 · 353 阅读 · 0 评论 -
栈溢出总结之基础ROP
ret2text原理:ret2text 即控制程序执行程序本身已有的的代码 (.text)。其实,这种攻击方法是一种笼统的描述。我们控制执行程序已有的代码的时候也可以控制程序执行好几段不相邻的程序已有的代码 (也就是 gadgets),这就是我们所要说的 ROP。这时,我们需要知道对应返回的代码的位置。当然程序也可能会开启某些保护,我们需要想办法去绕过这些保护。例子仅开了NX栈不可执行保护...原创 2020-02-28 15:53:45 · 608 阅读 · 0 评论 -
花式栈溢出值stack smash
花式栈溢出值stack smash原理:在程序加了 canary 保护之后,如果我们读取的 buffer 覆盖了对应的值时,程序就会报错,而一般来说我们并不会关心报错信息。而 stack smash 技巧则就是利用打印这一信息的程序来得到我们想要的内容。这是因为在程序启动 canary 保护之后,如果发现 canary 被修改的话,程序就会执行 __stack_chk_fail 函数来打印 ...原创 2019-11-12 20:36:14 · 314 阅读 · 1 评论