@expl0r3r
2018-05-18T12:56:31.000000Z
字数 857
阅读 1581
- CTF pwn中的目标是拿到flag,一般是在linux平台下通过二进制/系统调用等方式编写漏洞利用脚本exp来获取对方服务器的shell,然后get到flag
汇编语言,函数调用约定,大小端,函数栈帧
python语言,gdb调试,IDA pro分析
linux相关:32位与64位,各类防护机制(NX,ASLR,Canary,Relro),ELF文件格式,系统调用,shell命令
编译,链接,装载,执行
- 缓冲区溢出(Buffer overflow)
- 栈溢出,堆溢出,bss溢出等
- 整数溢出(Integer overflow)
- 整数的加减乘法
- 有符号与无符号的转换
- 整数溢出一般可以转换成其它漏洞
- 格式化字符串(Format string)
- printf(s),sprint f(s),fprintf(s)可以修改地址
- 也可以用来leak信息
- 使用后释放(Use-after-free)
- 释放掉的内存可能会被重新分配,释放后使用会导致重新分配的内存被旧的使用所改写
- Double free是一种特殊的UAF
- IDA pro
- gdb
- pwntools zio
- peda
- readelf
- ropgadget
- string
- objdump
- ......
- 注入代码
- 溢出后在栈上执行代码
- 伪造函数
- 修改.got.plt地址,替换掉正常函数
- 布置gadget将ret地址指向libc中的其它函数
- ......
Linux (x86) Exploit Development Series – sploitF-U-N(中文版:SploitFun Linux x86 Exploit 开发系列教程)
CTF Writeup Github(Note:百度搜不到github Pages的)
《有趣的二进制》
《深入理解计算机系统》
《程序员的自我修养》
《深入理解Linux内核》