ida 看 main 函数
跟进 func 函数
原以为可以直接打 ret2libc,但是这里没有程序没有 pop rdi
不过这里存在格式化字符串漏洞,也可以用来泄露 libc
我们直接看汇编
虽然 format 被初始化为 "hello world!"
但是它就在 buf 下面,后面的 read 我们可以读入 0x60
因此我们就可以覆盖 format,利用 printf 来泄露 libc 里的真实地址
这里 rax 存的就是 buf,我们溢出后劫持程序到 0x401227,即指令: