备忘
题目一般包含的两部分
- 含有漏洞的二进制程序
- 远程运行二进制程序的ip和端口
- 利用程序漏洞读取flag
- 任意代码执行
- 本地提权
一般流程
Binary \(\to\) 逆向找洞 \(\to\) 写漏洞利用程序 \(\to\) 本地调试 \(\to\) 打远程 \(\to\) 读flag
常用工具
- $IDA \ Pro $ 逆向二进制工具
- \(python + pwntools\) 编写漏洞利用脚本
- \(gdb\) + 插件 调试
- \(file,strings,readelf\)等查看\(ELF\)文件工具
- \(checkec,ROPgadget\)等漏洞相关的小工具
GDB
插件
pwndbg + Pwngdb
常用指令
- break 下断点
- p打印值,x打印内存
- stack查看栈
- tele,dq查看内存
pwntools
漏洞利用库
pip install pwntools
常用接口
- process,remote 交互
- send,sendline,sendafter,recv,recvuntil 交互
- p64,u64,p32,u32 把数字转适合程序的字符串
- context 设置环境
- ELF