06 2024 档案

摘要:之前学习了栈溢出常见的利用手法,有ret2text、ret2plt、ret2syscall、ret2shellcode、ret2libc、ret2csu溢出栈迁移,这里接着学习一下常见的绕过pie的手法 PIE PIE(Position Independent Executables)是编译器gcc 阅读全文
posted @ 2024-06-18 11:35 Junglezt 阅读(1173) 评论(1) 推荐(1) 编辑
摘要:栈迁移:简单理解就是在栈溢出的时候可溢出的字符过少,只能溢出ebp和ret的地址,可以使用leave_ret这个gadget来实现栈的迁移。 在栈中,默认情况下汇编语言在栈结束的时候都默认会执行一次leave和ret指令,我们利用这个特性将返回地址修改为leave_ret的gadget,将会执行两次 阅读全文
posted @ 2024-06-13 18:23 Junglezt 阅读(207) 评论(0) 推荐(0) 编辑
摘要:再上一次学习栈溢出ret2syscall方法时,我们会发现有些gadget不存在,我们只能借用read遗留下来的ebx寄存机调用,这时就可以使用万能gadget,这个万能的gadget存在__libc_csu_init中,由于每个动态链接的程序就有有libc,并且__libc_csu_init用于初 阅读全文
posted @ 2024-06-04 15:59 Junglezt 阅读(102) 评论(0) 推荐(0) 编辑
摘要:昨天学习了re2syscall,该方法主要是系统中没有system()函数,也没有/bin/sh字符串,一般该二进制程序使用static link静态链接,可以找到很多的gadget,我们可以利用这些gadget进行系统调用 但是在动态链接时,gadget就变少了,也是同样的没有system()函数 阅读全文
posted @ 2024-06-02 17:30 Junglezt 阅读(175) 评论(0) 推荐(0) 编辑
摘要:系统调用 操作系统会内置一些函数,例如常见的read和write,读取和写入。在Linux中使用这些内置的函数叫做系统调用。 系统调用就是内核为用户提供的一个接口,系统内置很多进程和服务,直接让用户操作很危险也容易出现故障,所以用户层不能直接执行系统层的操作,但是有了这个系统调用的接口,用户可以使用 阅读全文
posted @ 2024-06-01 12:16 Junglezt 阅读(252) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示