本人也是在自学过程,主要目的也是记录学习过程,有些地方做的不太好,都是按照自己理解进行讲解的(不专业),欢迎大家指出问题
此处我将文件命名为pwn
checksec pwn 查看一下保护机制

可以看到这是一个32-bit的文件,什么保护也没开
将文件拖入ida,按F5将汇编代码转换成c语言代码,得到

可以看到printf会打印出buf的起始地址,所以我们将shellcode写在buf上,然后覆盖返回地址为buf起始地址,执行shellcode
返回虚拟机
nano exp.py 开始写攻击脚本

首先接收buf的起始地址,也就是我们要写入shellcode的地址
payload:shellcode写在payload的开头,然后填充剩余的垃圾数据至return address,覆盖返回地址为shellcode的地址,执行shellcode,获得shell
保存退出
python3 exp.py
cat flag

此题完