Skip to content

Latest commit

 

History

History
387 lines (224 loc) · 18.6 KB

README_ch.md

File metadata and controls

387 lines (224 loc) · 18.6 KB

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 的会议讨论/教程

Youtube Playlist of various fuzzing talks and presentations - 列表内有许多优质内容

Browser bug hunting - Memoirs of a last man standing - Atte Kettunen 出品

Coverage-based Greybox Fuzzing as Markov Chain

DerbyCon 2016: Fuzzing 如何击溃软件

## 教程与博客

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

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 相关教程

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 完成模糊测试

libFuzzer 相关教程

libFuzzer 教程

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

Spike Fuzzer 相关教程

使用 Spike 发现溢出漏洞

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

FOE Fuzzer 相关教程

Fuzzing with FOE - Samclass.info 出品

SMT/SAT 求解器教程

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

## 工具

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

云 Fuzzer

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

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

文件格式 Fuzzer

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

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

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 框架

浏览器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](https://github.com/Z3Prover/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 程序模糊测试的工具

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

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

## 贡献

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

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