读万卷书,行万里路!
纸上得来终觉浅,绝知此事要躬行!
总结一道很无语的rop的题目,由于在puts调用中会卡在[ebp - 0x46c]这样的语句,所以只能把栈往抬高,避免访问到不可写的内存区域。 如
简要介绍发现在buu上做了很多ciscn-2019的题目,那直接搞个大合集。尽量收录所有的ciscn-2019-pwn的题目。 c系列 ciscn-2019-c-7 总结主
总结直接off by one可以修改指针,可以操作的空间非常大。其实觉得这题改改off by null,难度可能会高一点,one by one的话难度稍微低点
总结禁用了fastbin,同时有off by null的漏洞。做出来后发现很多人的解是用的house of storm进行任意地址申请,覆盖__free
总结主要是限制了UAF的chunk的大小为0x20,并且限制了add的次数,就很难受,并且题目用的还是calloc,没有使用tcache。最
总结baby中的baby,记录下exp,水一篇博客。 Exp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 from pwncli import * cli_script() p:tube = gift['io'] elf:ELF = gift['elf'] libc: ELF = gift['libc'] p.sendafter("Input your Name:\n", "a" * 0x29) p.recvuntil("a" * 0x29) msg =
总结根据本题,学习与收获有: 当off by one遇到calloc的时候,需要多次布局让2个指针,指向同一个0x70的chunk,然后一个先释放,
总结一个UAF洞,然后是常规的unlink。穿插着一个malloc_consolidation的理解,即如何构造unlink的条件。 利用过程
总结基础的UAF的题,只记录下exp吧。 Exp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 from pwncli import * cli_script() p:tube = gift['io'] elf:ELF = gift['elf']
总结仍然是tcache stash unlink的利用,这里总结两种思路: 任意地址分配时,先放5个,然后再凑2个出来 写堆地址的时候,放6个,伪造一下bk
总结题目可以任意地址写任意值,但是没有退出,因此可以考虑劫持rtld_global结构体中的一些函数指针。 利用exit函数的两个hook,同
总结题如其名,虽然简单,但是有个小坑,就是栈溢出的过程中,会把索引给覆盖掉,所以要注意索引的值: 即这里的v4为索引,在rbp的下方,溢出的时
总结本以为是要逆一下MD5,后来定睛一看,原来是个隐藏的栈迁移的题,还自带system("/bin/sh")。怪不得叫l
总结经典的利用fastbin [0x70],然后攻击__malloc_hook + __realloc_hook的题。只记录下exp。 Exp 1 2 3 4 5
总结根据本题,学习与收获有: 总结一个特殊的largebin attack,其实也不特殊,照着源码就能看出来,但是往往很少有题目这么考。即在往堆
总结根据本题,学习与收获有: 算是很简单的shellcode的题,需要手写shellcode 在写shellcode之前,可以先观察下寄存器状态
总结根据本题,学习与收获有: 如果程序的栈溢出只覆盖到rbp,那么大概率也是考栈迁移,只是刚好当前函数结束后会执行依次leave; ret,然后
解题思路简单的printf,修改printf@got为system然后再输入/bin/sh获取shell exp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
解题思路什么保护都没有,几乎是白给。经典的格式化字符串,这里选择修改printf的got表内容为system然后再输入/bin/sh拿she
总结常规的fastbin attack,劫持__malloc_hook为realloc+2,然后__realloc_hook为one_gadg