
[深育杯 2021]find_flag wp(绕过PIE和canary 格式化字符串 栈溢出 )
直接跳到格式化字符串漏洞处,然后查看栈结构,rbp上下分别是canary和返回地址。所以我们要输入0x40-0x8来把v2到canary填充完,然后再原封不动的输入canary,然后再输入0x8个a填充rbp指针,然后再输入后门函数地址覆盖返回地址。所以我们栈的第一个位置其实是rdi,所以canary和return的位置分别为17和19,我们输入。开了canary保护,栈溢出时,要还原canary,开了PIE,地址会改变。有了返回地址,我们减去偏移就能得到程序基地址,返回地址偏移为0x146F。


























