基于覆盖引导的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 |
AFL的衍生工具:GitHub – Microsvuln/Awesome-AFL: A curated list of different AFL forks and AFL inspired fuzzers with detailed equivalent academic papers and AFL-fuzzing tutorials |
生成式模糊测试工具
名称 | 项目地址 | 简介 |
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 |
其他模糊测试工具
了解更多安全解决方案,请访问中科固源官网:http://www.gysecurity.cn/
发表评论
您还未登录,请先登录。
登录