Awesome-Fuzzing/README_ch.md

22 KiB
Raw Permalink Blame History

Fuzzing 大合集 Awesome

这是一个在学习 fuzzing 的最初阶段最好的有关 fuzzing 的资源合集(书籍、课程、视频、教程等等)

Table of Contents

Awesome Fuzzing Resources

书籍

关于 fuzzing 的书籍

Note: 下列书籍中的部分章节也描述了 fuzzing

课程

与 fuzzing 有关的课程/培训

免费

NYU Poly ( see videos for more ) - Dan Guido 出品的免费指导

Samclass.info ( check projects section and chapter 17 ) - Sam 出品

Modern Binary Exploitation ( RPISEC ) - Chapter 15 - RPISEC 出品

Offensive Computer Security - Week 6 - W. Owen Redwood 和 Prof. Xiuwen Liu 出品

付费

Offensive Security, Cracking The Perimeter ( CTP ) and Advanced Windows Exploitation ( AWE )

SANS 660/760 Advanced Exploit Development for Penetration Testers

Exodus Intelligence - 漏洞挖掘大师级课程

视频

讨论 fuzzing 技术、工具、最佳实践的视频

NYU Poly Course videos (from Dan Guido)

Fuzzing 101 (Part 1) - Mike Zusman 出品

Fuzzing 101 (Part 2) - Mike Zusman 出品

Fuzzing 101 (2009) - Mike Zusman 出品

Fuzzing - Software Security Course on Coursera - 马里兰大学出品

关于 Fuzzing 的会议讨论/教程

攻击反病毒软件的内核驱动

Fuzzing Windows 内核 - OffensiveCon 2020

Youtube 上关于 Fuzzing 演讲的内容 - 列表内有许多优质内容

浏览器漏洞狩猎 - Atte Kettunen 出品

应用马尔科夫链、基于覆盖度的灰盒 Fuzzing

DerbyCon 2016: Fuzzing 如何击溃软件

Fuzz Theory

教程与博客

解释 fuzzing 方法、技术与最佳实践的教程与博客

Fuzzing Closed Source PDF Viewers

Effective File Format Fuzzing - Mateusz “j00ru” Jurczyk @ Black Hat Europe 2016, London

A year of Windows kernel font fuzzing Part-1 the results - Google Zero 项目的最佳论文,描述了如何进行 fuzzing 以及如何构建一个 fuzzer

A year of Windows kernel font fuzzing Part-2 the techniques - Google Zero 项目的最佳论文,描述了如何进行 fuzzing 以及如何构建一个 fuzzer

Interesting bugs and resources at fuzzing project - fuzzing-project.org 出品

Fuzzing workflows; a fuzz job from start to finish - @BrandonPrry 出品

A gentle introduction to fuzzing C++ code with AFL and libFuzzer - Jeff Trull 出品

15 分钟介绍 fuzzing - MWR Security 出品

Note: Folks at fuzzing.info 收集了很多非常有用的链接,我没有重复他们的工作,我只是整理了 2015 年到 2016 年间他们没有收录的文章 Fuzzing Papers - fuzzing.info 出品

Fuzzing 博客 - fuzzing.info 出品

Root Cause Analysis of the Crash during Fuzzing - Corelan Team 出品 Root cause analysis of integer flow - Corelan Team 出品

Creating custom peach fuzzer publishers - Open Security Research 出品

在 Fuzzing 大型开源项目前要考虑的 7 件事 - Emily Ratliff

从 Fuzzing 到 Exploit

从 fuzzing 到 0-day - Harold Rodriguez(@superkojiman) 出品

从 crash 到 exploit - Corelan Team 出品

Peach Fuzzer 相关教程

Peach 上手指南 使用 Peach 进行 Fuzzing Part 1 - Jason Kratzer of corelan team 出品 使用 Peach 进行 Fuzzing Part 2 - Jason Kratzer of corelan team 出品 Peach pit 文件的自动生成 - Frédéric Guihéry, Georges Bossert 出品

AFL Fuzzer 相关教程

Creating a fuzzing harness for FoxitReader 9.7 ConvertToPDF Function

通过 Fuzzing Adobe Reader 在 50 天获得 50 个 CVE

Fuzzing sockets 第一部分FTP servers

Fuzzing software 第一部分:常见挑战与解决方案

Fuzzing software 第二部分:高级技巧

Fuzzing 工作流程,包含 fuzz 的始末 - @BrandonPrry 出品

使用 AFL persistent 模式对 capstone 进行 Fuzzing - @toasted_flakes 出品

RAM disks and saving your SSD from AFL Fuzzing

使用 AFL 进行 Bug 挖掘

AFL 在真实示例中的高级用法

Segfaulting Python with afl-fuzz

使用 AFL-Fuzz 进行 Fuzzing 的实例( AFL vs Binutils )

Fuzzing 模拟器的重要性

心脏滴血漏洞是如何被发现的

用 AFL 进行文件系统 Fuzzing

使用 AFL 对 Perl/XS 进行模糊测试

如何使用 AFL 对服务器进行模糊测试 - by Jonathan Foote

一系列真实漏洞的挑战:使用 AFL 完成模糊测试

Fuzzing 101 - PHDays

libFuzzer 相关教程

libFuzzer 教程

狩猎 VirtualBox 的漏洞

如何使用 libFuzzer 对现代 C/C++ 项目进行模糊测试

honggfuzz 相关教程

如何使用 honggfuzz 发现 VLC 中的 Double-Free RCE 漏洞

Spike Fuzzer 相关教程

使用 Spike 发现溢出漏洞

使用 Spike 进行模糊测试 - Samclass.info 出品

FOE Fuzzer 相关教程

Fuzzing with FOE - Samclass.info 出品

SMT/SAT 求解器教程

Z3 - A guide - Z3 快速上手指南

构建一个反馈驱动的 Fuzzer

如何构建一个反馈驱动的 Fuzzer - by @fady_othman

工具

那些在 fuzzing 中能帮上忙的工具

云 Fuzzer

可以在云环境中进行模糊测试的模糊测试工具

Cloudfuzzer - 在云环境中自动、便易地进行云 Fuzzing 的框架

Fuzzit - Fuzzit 是一个 Fuzzing 即服务的平台,被 systemd, radare2 等多个开源\闭源项目使用,想加入请联系 oss@fuzzit.dev

文件格式 Fuzzer

那些帮助对像 pdf, mp3, swf 等文件格式进行 fuzzing 的 Fuzzers

Rehepapp

Newer version of Rehepapp

针对 PE 文件进行静态二进制插桩辅助、结合 WinAFL 的 Fuzzer

MiniFuzz - Microsoft 出品的基础文件格式 fuzzing 工具

BFF from CERT - 基础文件格式 fuzzing 框架

AFL Fuzzer (Linux only) - Michal Zalewski aka lcamtuf 开发的 Fuzzer

Win AFL - Ivan Fratic 开发的针对 Windows 二进制程序 fuzzing 的 AFL 分支版本

Shellphish Fuzzer - 一个操纵 AFL 的 Python 接口,可以简单的写入测试用例与其他功能

TriforceAFL - 一个 AFL 的修正版,支持应用源码无法获得情况下的 fuzzing

AFLGo - 基于 AFL 构建的导向性灰盒 Fuzzing针对程序特定位置进行模糊测试

Peach Fuzzer - 帮助创建传统 dumb 以及小型 fuzzer 的框架

MozPeach - 由 Mozilla Security 开发基于 peach 2.7 版本的分支版本

Failure Observation Engine (FOE) - 基于畸形文件的 Windows 程序 Fuzzing 工具

rmadair - 基于畸形文件的 fuzzer使用 PyDBG 来监视感兴趣的信号

honggfuzz - 支持反馈驱动、基于代码覆盖率的通用、易用型 Fuzzer

zzuf - 一个透明应用输入 fuzzer可以拦截文件操作、改变程序输入的随机位

radamsa - 通用的 fuzzer测试用例生成器

binspector - 二进制格式分析与模糊测试工具

grammarinator - 基于 ANTLR v4 语法的文件格式模糊测试工具ANTLR 项目已有大量的语法)

网络协议 Fuzzer

那些帮助对像 HTTP, SSH, SMTP 等网络协议进行 fuzzing 的 Fuzzer

Peach Fuzzer - 帮助创建传统 dumb 以及小型 fuzzer 的框架

Sulley - Michael Sutton 开发,包含多个可扩展组件的 Fuzzer 开发与 Fuzzing 测试框架

boofuzz - Sulley 框架的继任者

Spike - 像 sulley 的 fuzzer 开发框架,是 sulley 的前身

Metasploit Framework - 通过 Auxiliary 模块使其具有了 fuzzing 能力的框架

Nightmare - 一个带有 Web 管理界面的分布式 fuzzing 测试套件,支持对网络协议进行 fuzzing

rage_fuzzer - 未知协议包 fuzzer

Fuzzotron - 支持 TCP、UDP 的简单多进程网络 Fuzzer

Mutiny - 通过重放畸变的 PCAP 数据包来对网络进行 Fuzzer

Fuzzing For Worms - 用于网络服务的 Fuzzing 框架

AFL (w/ networking patch) - 用于网络 Fuzzing 的非官方版 AFL

AFLNet - 用于网络协议的灰盒 FuzzerAFL 的扩展)

浏览器Fuzzer

BFuzz - An input based, browser fuzzing framework.

杂项,内核 Fuzzer通用 Fuzzer

Choronzon - 基于遗传知识的 Fuzzer

QuickFuzz - Haskell 写的针对第三方软件使用常见文件格式进行测试的工具,利用现成的、知名的 Fuzzer

gramfuzz - 可定义复杂语法来建模文档与二进制数据格式的基于语法的 Fuzzer

KernelFuzzer - 跨平台内核 Fuzzer 框架

honggfuzz - 带有分析选项的通用、易用型 fuzzer

Hodor Fuzzer - 曾经是另一个通用的 fuzzer

libFuzzer - 面向 C/C++ 程序、基于覆盖度的进化模糊测试工具

syzkaller - 分布式、无监督、基于覆盖度的 Linux 系统调用模糊测试工具

ansvif - 用于在 C/C++ 程序中查找漏洞的高级跨平台模糊测试框架

Tribble - 易用、覆盖度指导的 JVM 模糊测试框架

go-fuzz - 覆盖度指导的 go 包模糊测试

流分析(用户输入如何影响执行)

PANDA ( Platform for Architecture-Neutral Dynamic Analysis )

QIRA (QEMU Interactive Runtime Analyser)

kfetch-toolkit - 用于记录操作系统内核执行的内存引用的高级日志工具

moflow - 软件安全框架,包括漏洞的挖掘和修补

符号执行 + SAT/SMT 求解器

Z3

SMT-LIB

参考

我没有把全部的东西都纳进来,比如 AxMan请参考以下链接获取更多信息 https://www.ee.oulu.fi/research/ouspg/Fuzzers

基本工具(通用)

漏洞利用工具开发者、逆向工程师常用的工具

调试工具

Windbg - 漏洞利用者常用的调试器

Immunity Debugger - Immunity Sec 出品的调试器

OllyDbg - 逆向工程师的常见选择

Mona.py ( Plugin for windbg and Immunity dbg ) - 漏洞利用开发者的绝佳工具

x64dbg - 开源 Windows x64/x32 调试器

Evan's Debugger (EDB) - Front end for gdb.

GDB - Gnu Debugger - 最好的 Linux 调试器

PEDA - Python 开发的 GDB 辅助程序

Radare2 - 逆向工程与程序分析的框架

反汇编工具

反汇编工具、反汇编框架等

IDA Pro - 最好的反汇编工具

binnavi - 二进制程序分析 IDE注释反汇编代码的控制流图与调用图

Capstone - Capstone 是一个轻量、跨平台、多架构支持的反汇编框架

其他

ltrace - 库调用拦截

strace - 系统调用拦截

存在漏洞的应用程序

Exploit-DB 搜索、选取漏洞,有些提供了程序下载,可以通过你选择试用的 fuzzer 对利用进行复现

PacketStorm

Fuzzgoat - 对有漏洞的 C 程序模糊测试的工具

vulnserver - 用来测试 Fuzzer 的存在漏洞的服务器

fuzzing 期间种子样本文件

https://files.fuzzing-project.org/

PDF Test Corpus from Mozilla

MS Office file format documentation

Fuzzer Test Suite - 模糊测试引擎的测试集,包括许多知名的 Bug如 Heartbleed、c-ares $100K bug 等

Fuzzing Corpus - 包含多种文件格式、用于 Fuzzing 的语料库

反Fuzzing

Anti-Fuzzing 的介绍:纵深防御的辅助

Fuzzification: 反 Fuzzing 技术

AntiFuzz: 阻止对二进制可执行文件的 Fuzzing

导向性Fuzzing

Awesome Directed Fuzzing: 导向性 Fuzzing 研究论文的列表

贡献

请查看 contributing.md 中关于细节的介绍.

感谢下列人员对这个项目的贡献: