seo网站建设优化,珠宝网站开发目的,网站域名空间代理,小程序定制开发外包风险学习fuzzing也几天了#xff0c;今天记录AFL的安装及使用
一、实验环境
虚拟机#xff1a;ubuntu20.04 当然也可以uname -a去看自己的版本号
二、AFL安装
1.先更新一下工具
sudo apt update2.安装AFL必要的一些依赖#xff0c;例如编译工具#xff08;如 build-essen…学习fuzzing也几天了今天记录AFL的安装及使用
一、实验环境
虚拟机ubuntu20.04 当然也可以uname -a去看自己的版本号
二、AFL安装
1.先更新一下工具
sudo apt update2.安装AFL必要的一些依赖例如编译工具如 build-essential、Python 开发环境、自动化构建工具如 automake)。
sudo apt install -y build-essential python3-dev automake cmake git flex bison libglib2.0-dev libpixman-1-dev python3-setuptools cargo libgtk-3-dev在过程中我开始遇到被2954进程占用如下图
这个进程是管包更新的。我本来准备kill这个进程但过了一会他便好了 3.克隆AFL仓库
git clone https://github.com/AFLplusplus/AFLplusplus.git克隆好后去下方的文件夹
cd AFLplusplus4.编译安装AFL 我开始make all指令后出现下面问题 遇到的错误是因为缺少 GCC 插件开发头文件于是我开始安装。先下面看gcc的版本号
gcc -v | head -n1然后安装gcc插件包
sudo apt install gcc-9-plugin-dev
# 若版本是 12.x改为
# sudo apt install gcc-12-plugin-dev安装完事后再重新编译AFL
make clean # 清理旧编译文件可选
make # 重新执行编译同时我也将其安装到系统使其可以全局使用
sudo make install5.检测AFL是否安装成功
afl-fuzz --help到这AFL安就安好了
三、安装VScode
这不是重点我们快速带过 安装命令如下
sudo apt update
sudo apt install software-properties-common apt-transport-https wget
# 添加微软签名密钥
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/microsoft.gpg
# 添加 VS Code 软件源
sudo add-apt-repository deb [archamd64] https://packages.microsoft.com/repos/vscode stable main
# 安装 VS Code
sudo apt install code启动命令如下
code四、使用AFL
4.1 实验准备
我们先编写一个test.c
#include stdio.h
#include stdlib.h
#include string.hint main(int argc, char *argv[]) {char buffer[100];if (argc 1) {strcpy(buffer, argv[1]);printf(You entered: %s\n, buffer);}return 0;
}这里很明显可以看出缓冲器漏洞 回顾一下平常我们怎么启用
gcc test.c -o test
#其中test.c是源文件名-o test指定生成的可执行文件名为test
./test xxx
#./test就可以启动test.exe后面xxx可以输进去东西4.2 工具测试
**1.编译目标程序。**使用 AFL 提供的编译器包装器 afl-clang-fast 或 afl-gcc 来编译目标程序以便在运行时收集模糊测试所需的信息。这里以 afl-clang-fast 为例
afl-clang-fast -g -o test test.c遇到一个问题安一下afl-clang-fast
sudo apt install afl-clang再执行就OK了 2.创建基础文件 模糊测试需要一些初始的输入数据作为测试的起点。创建一个包含简单输入的文件
mkdir in
echo Hello in/test_input
mkdir out3.启动模糊测试 使用 afl-fuzz 命令启动模糊测试指定输入目录、输出目录和要测试的目标程序
afl-fuzz -i in -o out ./test -i in指定包含初始输入文件的目录。 -o out指定用于存储模糊测试结果的输出目录。 ./test 指定要测试的目标程序 是 AFL 的占位符表示在运行目标程序时将自动替换为生成的输入文件。 执行遇到一个小问题 从你给出的错误信息可知系统当前的 core_pattern 配置会致使在捕获程序崩溃时出现延迟从而影响 AFL 的正常运行。AFL 建议你修改 /proc/sys/kernel/core_pattern 的配置 我们在这个框临时解决一下
echo core | sudo tee /proc/sys/kernel/core_pattern该命令的作用是把 /proc/sys/kernel/core_pattern 的值设定为 core如此一来系统在产生核心转储文件时就不会借助外部工具从而避免了延迟问题。 不过这种修改仅在当前会话中有效系统重启之后配置会恢复原状。 再执行 就产生下面的运行结果图 还有