CTF[Pwn] i春秋学习笔记
buffer overflow 堆溢出、栈溢出、bss溢出、data溢出 例题: wellpwn\AliCtf 2016 vss\Hitcon 2015 readable\stkof\zerostorage 整数溢出 无符号数和有符号的转换(MIMA 2016 shadow) 整数加减乘除法,malloc(size*2)(pwnhbu.cn calc) 整数溢出通常会进一步转换为缓冲区溢出、逻辑漏洞等其他漏洞 格式化字符串 printf sprintf fprintf 任意地址读写 用来leak 释放后使用(Use-After-Free) 释放掉的内存可能会被重新分配,释放后使用会导致重新分配的内存被旧的使用所改写 Double free就是一种特殊的UAF 例题: Defcon 2014 Qual shitsco,AliCTF 2016 router,0CTF2016 freenote(double free),HCTF 2016 fheap(double free) 逻辑漏洞 访问控制 协议漏洞 多线程竞态条件等(fakefuzz) 还原结构体、接口、类 理清程序的执行逻辑 熟悉常见的数据结构 链表、树、堆、图等各种加密算法 了解各个寄存器的作用 rsp/esp pc rbp/ebp rax/eax rdi rsi rdx rcx 栈用于保存函数的调用信息和局部变量 函数调用