题目链接:warmup_csaw_2016。 下载附件后,使用 IDA 反编译,定位到 main 函数,如下。 __int64 __fastcall main(int a1, char **a2, char **a3) { char s[64]; // [rsp+0h] [rbp-80h] BYRE
BUUCTF 3.warmup_csaw_2016 拿到题目,我们先运行一下 我们发现这道题的样子和BUUCTF的rip很像,一样是让我们输入,一样是在输入超长字符串后程序会崩溃,所以我们可以猜测是一道栈溢出的问题,我们来看一下保护机制 我们发现依旧是几乎没开保护机制,所以大概率是一道栈溢出的题。 我们看一下IDA 我们发现最后的get...
官网:https://buuoj.cn/challenges#warmup_csaw_2016, 视频播放量 18、弹幕量 0、点赞数 1、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 我是大傻子a, 作者简介 认识的人越多,我就越喜欢狗。,相关视频:Krypton Level 0 → Level 1,Bandit Level 0,“玩什么游戏可
>gdb target >start (出现程序运行时的数据) >pattern_create 300 复制粘贴输入后 读取rbp中的字符串,复制 >pattern_offset Crtl+shift+v 读取为偏移量是64,考虑到Caller’s rbp为八个字节,最终payload要用64+8。 payload from pwn import* p = remote(“ip address”,port) payload = ‘a’*64+‘b’*...
buu warmup_csaw_2016 查看文件类型 file target (已重命名目标文件为target) 64位elf 查看保护机制 checksec target结果为没有开启保护机制 GDB~peda调试 \>gdb target\>start(出现程序运行时的数据)\>pattern_create 300复制粘贴输入后读取rbp中的字符串,复制\>pattern_offset Crtl+shift+v读取为偏移量是64,考...
拿到文件,先checksec,没开启保护。 运行, IDA查看,main函数中,可解读,gets没有限制输入长度,存在溢出。 payload:
查看文件warmup_csaw_2016信息 拖入IDA分析,得到main函数。 __int64 __fastcall main(__int64 a1, char **a2, char **a3) { char s; // [rsp+0h] [rbp-80h] char v5; // [rsp+40h] [rbp-40h] write(1, "-Warm Up-\n", 0xAuLL); write(1, "WOW:", 4uLL); sprintf(&s, "%p\n"...
查看栈可以知道s距栈底为F,从f5的类C代码中也可以看到[rbp-Fh]即离栈底为F所以F+一个寄存器(rbp)(64位一个寄存器就是8个字节)的覆盖后就是retn的地址最终使用pwntools攻击脚本如下:warmup_csaw_2016一、载入ida可以看到和上一题一样,还是一个主函数一个后门函数,参数覆盖retn即可可以看到get对应的缓冲区为40...
warmup_csaw_2016 1 先checksec 是64位,小端序 进入ida,查看字符串 有一个cat flag 的字符串,跟进去,是这个函数,也就是执行这个函数我们就可以得到flag 一如既往的来到了main 函数处, 也是看到了get函数,一般就是栈溢出了,v5的大小位0x40,再加上是64位,所以要输入0x40+8,来造成栈溢出 脚本 from pwn ...