一.实验目标
1.手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。
2.利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。
3.注入一个自己制作的shellcode并运行这段shellcode。
二.实验知识点
1.熟悉Linux基本操作
2.能看懂常用指令,如管道(|),输入、输出重定向(>)等。
3.理解Bof的原理。
4.能看得懂汇编、机器指令、EIP、指令地址。
5.会使用gdb,vi。
三.实验步骤
(一)修改程序机器指令,该变终端名

将pwn1文件下载至kali并改名为pwn20232413,反汇编文件

在终端输入vi pwn20232413,结果为乱码
点击esc,输入:%!xxd进入十六进制编辑模式,将e8 d7更改为e8 c3

:%!xxd -r转回原来的格式并保存

修改成功
输入./pwn20232413显示运行结果

(二)BOF攻击,改变程序执行流
安装gdb
使用命令sudo apt update和sudo apt install gdb命令安装gdb,完成后输入gdb,查看是否安装成功

复制pwn1,命名为pwn20232413_2







