下载文件后首先检查保护,发现不存在canary,可以进行栈溢出。
将文件拖入ida32位进行查看,发现是一个简单的登录。
首先在login()中输入账号和密码,发现passwd存在buf中,可输入长度有0x199,然后传入check_passwd()函数中。
然后在check_passwd中将0x199长度的buf复制给dest,但是dest距离ebp只有0x14,我们也在文件中发现了cat flag的函数,所以思路就很清晰了,在输入密码时,输入一个长字符串,在check_passwd函数中将这个长字符串复制给dest,从而实现栈溢出,控制返回地址。
但是问题在于,程序对于输入的passwd长度进行了限制,长度只能在3--8之间,这对我们输入长