- 博客(9)
- 收藏
- 关注
原创 pwn中沙盒保护之orw绕过
简单来说开启沙盒保护后execve被禁用,也就是说即使我们拿到shell也没有用。我们可以使用seccomp-tools dump指令进行查看。
2024-03-09 11:49:56
1007
7
原创 pwn入门之栈迁移
栈迁移可以用于处理栈溢出的情况。当栈溢出且可溢出长度不足以容纳 payload 时,可以通过栈迁移来构建一个新的栈空间以放下 payload。
2024-03-08 20:20:46
1349
1
原创 pwn中的pie保护
1:多gdb调试,去看自己输入的数据在栈中是什么情况。2:pie和canary以及libc的地址源于泄露,可以多动手操作去尝试。3:经过以上几个题目发现自己写题慢以及做不出题目还是只是少,最后一题的代码审计最开始根本看不懂。。。
2024-01-28 22:34:08
1188
1
原创 pwn入门之mprotect函数的利用
所以payload的意思就是先调用mprotect函数通过pop将原本的参数覆盖为我们想要的参数,然后返回到read函数,然后pop弹掉read的参数,把第二个参数改为bss的地址,读入shellcode。通过gadget找到一个含有三个pop一个ret指令的地址,我们要通过这个指令将mprotect函数原来的参数pop走,让我们能够填入我们想要的参数.pop_ebx_esi_ebp_ret=0x80a019b然后就是构造payload了先上代码。这题是64位的所以着重讲一下pay的构造。
2024-01-24 22:14:54
1344
1
原创 pwn入门之32位ret2libc
为什么第一个payload发送后能够得到puts_addr,上面说到write函数是关键,看下write函数原型write(1,buf,0x32)和read很像,这里涉及到一个格式化漏洞(这个也是pwn学习中的一大知识点,后续文章再讲),像puts,write,printf等类似函数在书写时不规范会导致多输出一些信息,正确写法应该是printf("%5d\n",1000)这种前面加上格式化的,懒的程序员在写代码时会直接printf(1000)导致泄露信息。的地址,这个地址就是libc文件的基址。
2024-01-08 15:23:47
1132
8
原创 pwn入门之ret2text
重点来了:存在gets函数,先让我们了解一下gets函数,它可以无限读入数据,造成栈溢出。观察到s变量距离ebp有0x28的距离,对于这个题来说栈结构为先读入s变量然后下面是ebp然后才是返回地址,那么我们就有思路了,往s变量里面填充垃圾数据直到返回地址把返回地址改为我们需要的flag的位置。第四行:这是我们人为构造的代码数据,根据思路填充垃圾数据0x28个,因为这是32位elf文件所以需要再加上4,p32(flag)即为我们的返回地址。0不用管buf是我们输入数据的地方,0x32是能写入的字节数。
2024-01-07 20:37:53
1242
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人