欢迎访问系列文章
Linux 二进制漏洞挖掘入门系列之(二)堆溢出:off-by-one
Linux 二进制漏洞挖掘入门系列之(三)整数溢出
Linux 二进制漏洞挖掘入门系列之(四)格式化字符串漏洞
Linux 二进制漏洞挖掘入门系列之(五)UAF 漏洞分析与利用
0x10 环境
gdb-peda 插件,用来调试程序时,高亮不同寄存器,堆栈的地址和数据
Windows 环境下的 IDA Pro,强大的交互式反汇编工具
测试程序(即带有栈溢出漏洞的二进制可执行文件)
虚拟机装有 Linux 发行版,例如 Ubuntu、Kali,用来运行测试程序
pwntools,如果要写 POC,会用到此 python 包
测试程序下载地址
1
链接:https://pan.baidu.com/s/1U3ktIz-veMuktutss-oGuA
提取码:9sn2
2
下面文件下载后,放在linux下的 /home/pwn/pwn0/
链接:https://pan.baidu.com/s/11lm17lllPZ5A8rrcuCELAg
提取码:knpf
gdb-peda 插件安装终端输入以下命令,即可安装成功
git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
对于非 Kali 的 Linux 发行版,我们还需要安装 checksec,一个用来检查 ELF 二进制可执行文件的保护措施的小程序
apt-get install checksec
0x20 漏洞分析
首先当然是运行目标程序,亲手体验一下程序的作用,然后再反编译代码,进行静态分析,找到其中可能存在的 bug,最后进行利用
0x21 初步分析
在 linux 环境下检测之前下载好的文件类型。从结果不难看出,文件类型是 ELF 32 位的可执行程序,架构是 Intel x86,也就是说该程序无法在 ARM 架构的处理器上运行。