[pwnable.tw] start
1 程序分析i386 架构,没有开任何保护,直接看汇编代码,包括一个 _start 和一个 _exit,_start 执行完后返回到 _exit 123456789101112131415161718192021222324.text:08048060 _start proc near ; DATA XREF: LOAD:08048018↑o.text:08048060 push esp.text:08048061 push offset _exit.text:08048066 xor eax, eax.text:08048068 xor ebx, ebx.text:0804806A xor ecx, ecx.text:0804806C xor edx, edx.text:0804806E ...
[pwn.college] Dynamic Allocator Misuse
pwn.college 中的 Dynamic Allocator Misuse 堆漏洞利用思路小结 level 1UAF level 2UAFread_flag 申请的堆块大小做了一个 rand 处理,但是并未设置随机种子,所以每次运行还是固定的值 level 3UAFread_flag 申请 2 次堆块,但我们同时也能访问多个堆块 level 4Double Free思考 tcache 在 free 时会做什么检查 level 5read_flag 会将申请的堆块首字节置 0,puts_flag 检查其是否为 0可以利用 free 设置 next 指针将其修改 level 6未开启 PIE,.bss 段上存放了 8 字节 secret,需要读出来作为 send_flag 的输入可以修改 next 指针从而 malloc 得到目标地址堆块 level 7和 level 6 相似,只是 8 字节 secret 变成了 16 字节注意 malloc 会将 key 清 0 即可 level 8secret 地址最低字节为 \x0A,即 \n,通过 scanf 发送给程序会被截断所以...