1.打开靶机,下载文件,检查文件类型,是64位ELF文件,NX保护机制打开,用ida反编译,得到汇编代码,按F5键得到C语言代码。2.利用gets函数栈溢出漏洞,可以看到gets函数的参数地址是v1,下方的条件语句中参数是v2。双击v1,得到gets缓冲区的范围大小。用垃圾数据填充v1,溢出v2(v2字节数是0x4,忽略),覆盖到下方的system函数,转接到cat/flag的地址。3.双击F12,进入字符串窗口,找到cat/falg.。双击它找到在栈中的位置,点击右边的地址,进入它的子函数的汇编代码,点击F5得到C语言代码,得到代码转接的下方窗口的地址0x4006BE。
4.写脚本代码,用终端打开运行得到flag。
rom pwn import*:导入pwn库;
r=remote:连接远程端口,及输入靶机上的端口信息;
payload:构建攻击载荷;
io.sendline:发送所求数据并回车;
io.interactive():交互数据并获得io控制权。