首先在ubuntu中使用checksec命令查看文件类型和权限
可以看到是32位程序,所以我们在windows中使用ida打开,找到main函数,使用F5转换成为高级语言。
main函数只有一个vulnerable函数可能存在问题,双击进入查看。
发现其使用gets函数向一个buffer数组里传入数据,此处存在明显的栈溢出问题。
同时我们看到有一个get_shell函数,其地址是0x08048522,我们只需要向栈中写入超量数据,使 0x08048522覆盖掉vulnerable函数的返回地址,就可以获得一个shell,进而就拿到了flag。下面我们去ubuntu下操作。
输入gdb进入pwndbg调试环境&#