基于覆盖引导的Fuzzing工具及其衍生工具
| 名称**** | 项目地址**** | 简介**** |
|---|---|---|
| AFL | github.com/google/AFL | AFL一款基于覆盖引导(Coverage-guided)的模糊测试工具,它通过记录输入样本的代码覆盖率,调整输入样本以提高覆盖率,从而增加发现漏洞的概率。 |
| AFL++ | github.com/AFLplusplus… | AFL无人维护之后由社区维护的一个版本 |
| honggfuzz | github.com/google/hong… | Honggfuzz 在闭源二进制测试和硬件级反馈支持上更具优势尤其适合需要深度监控闭源程序或内核组件的场景。开发者可通过定制化配置(如覆盖率统计粒度、变异策略)适配不同测试需求,提升软件安全性。而 AFL++ 更擅长基于源码插桩的灰盒测试 |
| libFuzzer | llvm.org/docs/LibFuz… | libFuzzer单进程执行减少上下文切换开销,适合高频次调用的轻量级函数测试,但是缺乏 AFL 的分布式调度和外部变异策略灵活性。与honggfuzz比较libFuzzer 更深度集成 LLVM 生态,适合开发阶段内嵌测试。 |
| winafl | github.com/googleproje… | winafl是将AFL移植到Windows上对闭源软件进行覆盖率引导的fuzz,通过DynamoRIO实现动态插桩,后来也支持通过TinyInst实现动态插桩 |
| Jackalope | github.com/googleproje… | 通过TinyInst实现动态插桩 |
| pe-afl | github.com/wmliang/pe-… | 对32位pe文件进行二进制静态插桩 |
| peafl64 | github.com/Sentinel-On… | 对64位pe文件进行二进制静态插桩 |
| e9patch | github.com/GJDuck/e9pa… | 对64位ELF二进制文件进行二进制静态插桩 |
| zafl | git.zephyr-software.com/opensrc/zaf… | 对64位ELF二进制文件进行二进制静态插桩 |
| WAFL | github.com/HexHive/ret… | 将AFL用于fuzz WebAssembly |
| AFL的衍生工具:github.com/Microsvuln/… |
生成式模糊测试工具
| 名称 | 项目地址 | 简介 |
|---|---|---|
| Sulley**** | github.com/OpenRCE/sul… | 专注于 网络协议内存漏洞(如缓冲区溢出)的 Python 框架,支持 HTTP、FTP、SMTP 等协议的变异测试,内置多种攻击引擎与回溯机制。 |
| boofuzz | github.com/jtpereyda/b… | 模块化协议定义能力,支持多步骤交互测试(如身份验证流程),允许用户定义协议或文件格式的结构模型,Boofuzz 自动生成变异后的测试用例,覆盖边界值、异常输入等潜在漏洞触发点,适配工控设备及 IoT 协议。 |
| peach | github.com/MozillaSecu… | peach通过 XML 配置文件(称为 Pit 文件)定义数据模型(Data Model)和状态模型(State Model),智能生成变异测试用例 |
| mutiny-fuzzer | github.com/Cisco-Talos… | 通过从数据包(如pcap文件)中解析协议请求并生成一个.fuzzer文件,然后基于该文件对请求进行变异,再发送给待测试的目标 |
| domato | github.com/googleproje… | 开源 DOM 模糊测试工具,专注于通过生成异常 HTML、CSS 和 JavaScript 样本,检测浏览器 DOM 引擎及前端代码中的安全漏洞 |
| restler-fuzzer | github.com/microsoft/r… | Stateful REST API Fuzzing工具 |
| h26forge | github.com/h26forge/h2… | 专为分析、生成和操作语法正确但语义不符合规范的 H.264 视频文件而设计 |
源代码模糊测试工具
| 名称 | 项目地址 | 简介 |
|---|---|---|
| go-fuzz | github.com/dvyukov/go-… | 对go进行源代码Fuzzing |
| jazzer | github.com/CodeIntelli… | 对java进行源代码fuzzing |
| jazzer.js | github.com/CodeIntelli… | 对js进行源代码fuzzing |
| Frelatage | github.com/Rog3rSm1th/… | 对Python进行源代码fuzzing |
| fuzzilli | github.com/googleproje… | 对js进行源代码fuzzing |
其他模糊测试工具
| 名称 | 项目地址 | 简介 |
|---|---|---|
| syzkaller | github.com/google/syzk… | linux内核fuzzing工具 |
| wtf | github.com/0vercl0k/wt… | 基于内存快照的fuzzing工具 |
| cryptofuzz | github.com/MozillaSecu… | 针对密码学库的fuzzing工具 |
| KernelFuzzer | github.com/FSecureLABS… | Windows内核Fuzzing工具 |
| fuzzusb | github.com/purseclab/f… | Linux系统USB Fuzzing工具 |
| fuzzware | github.com/fuzzware-fu… | 一个专为固件镜像提供自动化、自配置模糊测试的开源项目 |
| SAFIREFUZZ | github.com/pr0me/SAFIR… | 嵌入式固件作为Linux用户空间进程运行从而进行模糊测试 |
| Owfuzz | github.com/alipay/Owfu… | Wi-Fi协议模糊测试 |
| zzuf | github.com/samhocevar/… | 透明的应用程序输入模糊测试工具 , 通过拦截文件操作并随机改变程序输入中的位来工作 |
| radamsa | gitlab.com/akihe/radam… | 用于健壮性测试的模糊测试工具radamsa已经在实际重要的程序中发现了大量漏洞,它易于编写脚本,并且易于启动和运行。 |
| certfuzz | github.com/CERTCC/cert… | CERT基础模糊测试框架 |