1.打开靶机,下载文件,装载到虚拟机中,输入ls索引桌面,输入checksec level2检查文件类型。发现是32位的ELF文件,NX保护机制打开,RELRO部分打开,用ida编译。
2.得到汇编语言,按F5得到C语言代码。点击vulnerable_function,得到read函数及其距离ebp88h大小,双击buf,找到r代表的read函数本身覆盖大小,是4h。3.返回主函数,双击system,得到下方界面的地址0x8048320。作为覆盖的第一个地址。
4.按shift F12调出字符串窗口,找到/bin/sh双击打开,得到最后shellcode转接的地址0x0804A024.
5.因为之前执行完vulnerable_function中的read后直接调用system函数,没有预先指令的函数地址可返回,,则需要在攻击脚本中随便输入一个数据作为执行完system的返回地址,之后再进入/bin/sh,得到控制权。
6.打开终端,输入python3 脚本文件名.py,回车,输入ls,回车,输入cat flag得到flag。