Fuzzing exercise1

Fuzzing exercise1

环境准备 Ubuntu 20.04.2 LTS

username: fuzz

password: fuzz

下载并构建目标

首先得到模糊目标。为要模糊化的项目创建一个新目录

image

安装一些额外的工具(make和gcc),使环境完全准备好

首先要更新apt

image

image

下载Xpdf 3.02并解压

image

image

构建Xpdf

image

image

image

image

下载一些PDF来测试构建是否成功

image

image

开始测试

image

image

安装AFL++ 安装依赖项

image

image

image

构建AFL++

image

image

image

image

image

image

afl-fuzz查看是否安装成功

image

安装docker

image

image

image

afl-fuzz查看是否安装成功

image

# 认识AFL++

AFL是一个覆盖引导的模糊器,这意味着它收集每个突变输入的覆盖信息,以便发现新的执行路径和潜在的错误。当源代码可用时,AFL可以使用插装,在每个基本块(函数、循环等)的开头插入函数调用

要为我们的目标应用程序启用插装,我们需要使用AFL的编译器编译代码

首先,我们要清理所有之前编译过的目标文件和可执行文件

image

现在使用**afl-clang-fast**编译器构建xpdf

image

image

image

运行fuzzer

image

每个选项的简要说明:

- *-i*表示我们必须放置输入大小写的目录(即文件示例)

- *-o*表示afl++存储修改后文件的目录

- *-s*表示使用静态随机种子

*@@*是AFL将用每个输入文件名替换的占位符目标的命令行

基本上,fuzzer会运行这个命令

$HOME/fuzzing_xpdf/install/bin/pdftotext $HOME/fuzzing_xpdf/output '用于每个不同的输入文件。

由于收到消息 [-] Hmm...,进行如下操作

image