Format String Bug
- 格式化字符串漏洞
内存泄露
- 以
printf()
为例 %d
- 十进制 - 输出十进制整数%s
- 字符串 - 从内存中读取字符串%x
- 十六进制 - 输出十六进制数%c
- 字符 - 输出字符%p
- 指针 - 指针地址%n
- 到目前为止所写的字符数-
printf(s); // s = "%x%x%x"
会泄露栈上的数据,相对于格式化字符串偏移的数据
内存修改
payload = p32(addr) + b'%27d' + b'%4$hhn'
形如此类