基于覆盖引导的Fuzzing工具及其衍生工具
名称
项目地址
简介
AFL
https://github.com/google/AFL
AFL一款基于覆盖引导(Coverage-guided)的模糊测试工具,它通过记录输入样本的代码覆盖率,调整输入样本以提高覆盖率,从而增加发现漏洞的概率。
AFL++
https://github.com/AFLplusplus/AFLplusplus
AFL无人维护之后由社区维护的一个版本
honggfuzz
https://github.com/google/honggfuzz
Honggfuzz 在闭源二进制测试和硬件级反馈支持上更具优势尤其适合需要深度监控闭源程序或内核组件的场景。开发者可通过定制化配置(如覆盖率统计粒度、变异策略)适配不同测试需求,提升软件安全性。而 AFL++ 更擅长基于源码插桩的灰盒测试
libFuzzer
https://llvm.org/docs/LibFuzzer.html
libFuzzer单进程执行减少上下文切换开销,适合高频次调用的轻量级函数测试,但是缺乏 AFL 的分布式调度和外部变异策略灵活性。与honggfuzz比较libFuzzer 更深度集成 LLVM 生态,适合开发阶段内嵌测试。
winafl
https://github.com/googleprojectzero/winafl
winafl是将AFL移植到Windows上对闭源软件进行覆盖率引导的fuzz,通过DynamoRIO实现动态插桩,后来也支持通过TinyInst实现动态插桩
Jackalope
https://github.com/googleprojectzero/Jackalope
通过TinyInst实现动态插桩
pe-afl
GitHub – wmliang/pe-afl
对32位pe文件进行二进制静态插桩
peafl64
GitHub – Sentinel-One/peafl64: Static Binary Instrumentation tool for Windows x64 executables
对64位pe文件进行二进制静态插桩
e9patch
GitHub – GJDuck/e9patch: A powerful static binary rewriting tool
对64位ELF二进制文件进行二进制静态插桩
zafl
Open Source Software / zafl · GitLab
对64位ELF二进制文件进行二进制静态插桩
WAFL
GitHub – HexHive/retrowrite: RetroWrite — Retrofitting compiler passes through binary rewriting
将AFL用于fuzz WebAssembly
生成式模糊测试工具
名称
项目地址
简介
Sulley
https://github.com/OpenRCE/sulley
专注于 网络协议内存漏洞(如缓冲区溢出)的 Python 框架,支持 HTTP、FTP、SMTP 等协议的变异测试,内置多种攻击引擎与回溯机制。
boofuzz
GitHub – jtpereyda/boofuzz: A fork and successor of the Sulley Fuzzing Framework
模块化协议定义能力,支持多步骤交互测试(如身份验证流程),允许用户定义协议或文件格式的结构模型,Boofuzz 自动生成变异后的测试用例,覆盖边界值、异常输入等潜在漏洞触发点,适配工控设备及 IoT 协议。
peach
https://github.com/MozillaSecurity/peach
peach通过 XML 配置文件(称为 Pit 文件)定义数据模型(Data Model)和状态模型(State Model),智能生成变异测试用例
mutiny-fuzzer
GitHub – Cisco-Talos/mutiny-fuzzer
通过从数据包(如pcap文件)中解析协议请求并生成一个.fuzzer文件,然后基于该文件对请求进行变异,再发送给待测试的目标
domato
GitHub – googleprojectzero/domato: DOM fuzzer
开源 DOM 模糊测试工具,专注于通过生成异常 HTML、CSS 和 JavaScript 样本,检测浏览器 DOM 引擎及前端代码中的安全漏洞
restler-fuzzer
GitHub – microsoft/restler-fuzzer: RESTler is the first stateful REST API fuzzing tool for automatically testing cloud services through their REST APIs and finding security and reliability bugs in these services.
Stateful REST API Fuzzing工具
h26forge
https://github.com/h26forge/h26forge
专为分析、生成和操作语法正确但语义不符合规范的 H.264 视频文件而设计
源代码模糊测试工具
名称
项目地址
简介
go-fuzz
GitHub – dvyukov/go-fuzz: Randomized testing for Go
对go进行源代码Fuzzing
jazzer
GitHub – CodeIntelligenceTesting/jazzer: Coverage-guided, in-process fuzzing for the JVM
对java进行源代码fuzzing
jazzer.js
GitHub – CodeIntelligenceTesting/jazzer.js: Coverage-guided, in-process fuzzing for Node.js
对js进行源代码fuzzing
Frelatage
https://github.com/Rog3rSm1th/Frelatage
对Python进行源代码fuzzing
fuzzilli
GitHub – googleprojectzero/fuzzilli: A JavaScript Engine Fuzzer
对js进行源代码fuzzing
其他模糊测试工具
名称
项目地址
简介
syzkaller
GitHub – google/syzkaller: syzkaller is an unsupervised coverage-guided kernel fuzzer
linux内核fuzzing工具
cryptofuzz
https://github.com/MozillaSecurity/cryptofuzz
针对密码学库的fuzzing工具
KernelFuzzer
https://github.com/FSecureLABS/KernelFuzzer
Windows内核Fuzzing工具
fuzzusb
GitHub – purseclab/fuzzusb
Linux系统USB Fuzzing工具
fuzzware
GitHub – fuzzware-fuzzer/fuzzware: Fuzzware’s main repository. Start here to install.
一个专为固件镜像提供自动化、自配置模糊测试的开源项目
SAFIREFUZZ
GitHub – pr0me/SAFIREFUZZ: Same-Architecture Firmware Rehosting and Fuzzing
嵌入式固件作为Linux用户空间进程运行从而进行模糊测试
Owfuzz
GitHub – alipay/Owfuzz: Owfuzz: a WiFi protocol fuzzing tool
Wi-Fi协议模糊测试
zzuf
GitHub – samhocevar/zzuf: 🌪️ Application fuzzer
透明的应用程序输入模糊测试工具,通过拦截文件操作并随机改变程序输入中的位来工作
radamsa
Aki Helin / radamsa · GitLab
用于健壮性测试的模糊测试工具radamsa已经在实际重要的程序中发现了大量漏洞,它易于编写脚本,并且易于启动和运行。
certfuzz
GitHub – CERTCC/certfuzz: This project contains the source code for the CERT Basic Fuzzing Framework (BFF) and the CERT Failure Observation Engine (FOE).
CERT基础模糊测试框架
了解更多安全解决方案,请访问中科固源官网:http://www.gysecurity.cn/
文章原文链接:https://www.anquanke.com/post/id/305294