Fuzzing exercise1
环境准备 Ubuntu 20.04.2 LTS
username: fuzz
password: fuzz
下载并构建目标首先得到模糊目标。为要模糊化的项目创建一个新目录
安装一些额外的工具(make和gcc),使环境完全准备好
首先要更新apt
下载Xpdf 3.02并解压
构建Xpdf
下载一些PDF来测试构建是否成功
开始测试
安装AFL++ 安装依赖项 构建AFL++afl-fuzz查看是否安装成功
安装docker
afl-fuzz查看是否安装成功
# 认识AFL++
AFL是一个覆盖引导的模糊器,这意味着它收集每个突变输入的覆盖信息,以便发现新的执行路径和潜在的错误。当源代码可用时,AFL可以使用插装,在每个基本块(函数、循环等)的开头插入函数调用
要为我们的目标应用程序启用插装,我们需要使用AFL的编译器编译代码
首先,我们要清理所有之前编译过的目标文件和可执行文件
现在使用**afl-clang-fast**编译器构建xpdf
运行fuzzer
每个选项的简要说明:
- *-i*表示我们必须放置输入大小写的目录(即文件示例)
- *-o*表示afl++存储修改后文件的目录
- *-s*表示使用静态随机种子
*@@*是AFL将用每个输入文件名替换的占位符目标的命令行
基本上,fuzzer会运行这个命令
$HOME/fuzzing_xpdf/install/bin/pdftotext
由于收到消息 [-] Hmm...,进行如下操作