ref:http://www.freebuf.com/articles/rookie/169413.html

一系列用于Fuzzing学习的资源汇总

secist2018-04-30共185833人围观 ,发现 2 个不明物体新手科普

本文主要是向大家推荐一系列,用于fuzzing和Exploit开发初始阶段学习的资源合集,其中将包括相关的书籍,课程 – 免费或收费的,视频,工具,教程,以及一些供大家练习使用的靶机应用。

fuzzing书籍:

《模糊测试-强制性安全漏洞发掘》作者: Michael Sutton, Adam Greene, Pedram Amini。

《软件安全测试Fuzzing和zhi’laing质量保证作者:Ari Takanen, Charles Miller, and Jared D Demott。

《开源Fuzzing工具》作者: Gadi Evron and Noam Rathaus。

《Python灰帽子》作者:Justin Seitz。

注意:以下书籍中的相关章节专注于Fuzzing。

《Shellcoder手册:发现和利用安全漏洞》(第15章节)作者:Chris Anley, Dave Aitel, David Litchfield等。

《iOS黑客手册 – 第1章》作者:Charles Miller, Dino DaiZovi, Dion Blazakis, Ralf-Philip Weinmann, Stefan Esser。

《IDA Pro – IDA Pro Book:全球最受欢迎的反编译器非官方指南》

fuzzing课程/培训视频:

免费

纽约大学Poly(查看更多视频) – 由Dan Guido免费提供。

Samclass.info(检查项目部分和第17章) – 由Sam提供。

现代二进制开发(RPISEC) – 第15章 – 由RPISEC提供。

攻击性计算机安全 – 第6周 – 由W. Owen Redwood和Xiuwen Liu教授提供。

付费

Offensive Security,CTP和高级Windows开发(AWE)

针对渗透测试的SANS 660/760高级Exploit开发

Exodus Intelligence – 漏洞开发大师班

视频:

视频主要谈论fuzzing技术,工具以及最佳实践。

纽约大学Poly课程视频

Fuzzing 101 (Part 1) - Mike Zusman。

Fuzzing 101 (Part 2) - Mike Zusman。

Fuzzing 101 (2009) - Mike Zusman。

Fuzzing – Coursera软件安全课程 – 由马里兰大学提供

会议讲座和教程

Youtube上各种有关fuzzing的探讨和演示文稿播放列表 – 这些视频中有很多不错的内容

浏览器bug狩猎 – 最后一个人的回忆录 – Atte Kettunen

将基于代码覆盖率的灰盒Fuzzing视为马尔科夫链

DerbyCon 2016:Fuzzing基础知识……或如何破解软件

教程和博客

文章和博客解释了fuzzing的方法,技术和最佳实践。

有效的文件格式Fuzzing – Mateusz“j00ru”Jurczyk @Black Hat 2016欧洲,伦敦

过去一年的Windows内核字体fuzzing第一部分成果- 谷歌的Project Zero的一篇惊人的文章,描述了如何进行fuzzing和创建fuzzers。

过去一年的Windows内核字体fuzzing第二部分技术- 谷歌的Project Zero的一篇惊人的文章,描述了fuzzing和创建fuzzers需要什么。

fuzzing项目中有趣的bug和资源 – 来自fuzzing-project.org。

Fuzzing工作流程; fuzz工作从开始到结束 – @BrandonPrry。

用AFL和libFuzzer轻松介绍C++代码fuzzing- Jeff Trull。

15分钟fuzzing介绍- MWR安全。

注意:fuzzing.info已经为我们整合了许多优秀的资源,我不会重复他们的工作。我将会添加一些他们错过的论文。Fuzzing Papers - fuzzing.info

Fuzzing Blog - fuzzing.info

Fuzzing中出现崩溃的根本原因分析 - Corelan团队。Root cause analysis of integer flow -Corelan团队。

Creating custom peach fuzzer publishers - Open Security Research。

Fuzzing大型开源项目之前需要考虑的七件事 – Emily Ratliff。

从Fuzzing到利用:

从Fuzzing到0-day - Harold Rodriguez(@superkojiman)。

从崩溃到利用 - Corelan团队。

Peach Fuzzer相关教程:

开始使用Peach

Peach Fuzzing第一部分 – corelan团队Jason Kratzer

Peach Fuzzing第二部分- corelan团队Jason Kratzer

自动生成Peach pit文件/fuzzers- FrédéricGuihéry,Georges Bossert

AFL Fuzzer相关教程

Fuzzing工作流程; fuzz工作从开始到结束 – @BrandonPrry。

使用afl的persistent模式给capstone做模糊测试 – @toasted_flakes。

RAM磁盘以及从AFL Fuzzing中保存你的SSD

使用American Fuzzy Lop狩猎Bug

American Fuzzy Lop在真实案例中的高级使用

使用afl-fuzz隔离Python

Fuzzing Perl: American Fuzzy Lops的故事

使用AFL-Fuzz Fuzzing,一个练习示例(AFL vs Binutils)

Fuzzing的重要性?

Heartbleed是如何被找到的

使用American Fuzzy lop Fuzzing文件系统

使用AFL Fuzzing Perl/XS模块

如何使用American Fuzzy Lop fuzz一个服务器- Jonathan Foote

AFL研讨会Fuzzing – 真正的漏洞带来的一系列挑战

libFuzzer Fuzzer相关教程

libFuzzer教程

libFuzzer研讨会:“C/C++项目的现代fuzzing”

Spike Fuzzer相关教程

使用Spike Fuzzing查找溢出

使用Spike Fuzzing – samclass.info

FOE Fuzzer相关教程

使用FOE Fuzzing – Samclass.info

SMT/SAT solver教程

Z3 – 指南 – Z3入门指南:指南

工具

有助于fuzzing应用的工具

Cloud Fuzzers

在云环境中帮助fuzzing测试的Fuzzers。

Cloudfuzzer – 云fuzzing框架,可以轻松在云环境中运行自动化模糊测试。

文件格式Fuzzers

可帮助fuzzing文件格式的Fuzzers,如PDF,MP3,SWF等

MiniFuzz – Wayback Machine链接 – Microsoft提供的基本文件格式模糊测试工具。(Microsoft网站上不再提供)。

BFF from CERT - 用于文件格式的基本模糊测试框架。

AFL Fuzzer(仅适用于Linux)- American Fuzzy Lop Fuzzer 由Michal Zalewski aka lcamtuf发布

Win AFL- Linux下的智能模糊测试神器afl-fuzz的Windows版本

Shellphish Fuzzer  – AFL的Python接口,允许注入测试用例和其他功能。

TriforceAFL – AFL的修改版本,它支持源代码不可用的应用程序的模糊测试。

Peach Fuzzer –  一款智能模糊测试工具, 广泛用于发现软件中的漏洞和缺陷,它有两种主要模式,基于生长的模糊测试和基于变异的模糊测试。

MozPeach - 由Mozilla Security提供的peach 2.7。

失败观察引擎(FOE) – 针对Windows应用程序的基于文件突变的fuzz测试工具。

rmadair- 基于文件突变的fuzz测试工具,使用PyDBG来监测感兴趣的信号。

honggfuzz - 一个易于使用的fuzzer以及有趣的分析选项。支持基于代码覆盖的feedback-driven fuzzing。同时支持GNU/Linux,FreeBSD,Mac OSX和Android系统。

zzuf  – 一个透明应用程序输入fuzzer。它通过拦截文件操作并更改程序输入中的随机位来工作。

radamsa – 通用型fuzzer和测试用例生成器。

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

grammarinator – 基于ANTLR v4语法的文件格式模糊测试工具(ANTLR项目中已有多种语法可用)。

网络协议Fuzzers

可帮助fuzzing使用基于网络协议(如HTTP, SSH, SMTP等)的应用程序Fuzzers。

Peach Fuzzer –  一款智能模糊测试工具, 广泛用于发现软件中的漏洞和缺陷,它有两种主要模式,基于生长的模糊测试和基于变异的模糊测试。

Sulley- 由多个可扩展组件组成的fuzzer开发和模糊测试框架。

boofuzz- Sulley框架的分支和继承。

Spike – 一个fuzzer开发框架。

Metasploit框架 – 通过辅助模块包含一些fuzzing功能的框架。

Nightmare – 带有Web管理的分布式模糊测试套件,支持使用网络协议进行模糊测试。

杂项

其他的一些fuzzers,如内核fuzzers,通用型fuzzer等。

Choronzon – 一个革命性的基于知识库的模糊测试。

QuickFuzz – 是一个语法模糊器,由QuickCheck,模板Haskell和Hackage的特定库生成许多复杂的文件格式,如Jpeg,Png,Svg,Xml,Zip,Tar等。

gramfuzz – 一种基于语法的模糊器,可以让您定义复杂的语法来为文本和二进制数据格式建模。

KernelFuzzer – 跨平台的内核Fuzzer框架。

honggfuzz – 一个易于使用的fuzzer以及有趣的分析选项。支持基于代码覆盖的feedback-driven fuzzing。同时支持GNU/Linux,FreeBSD,Mac OSX和Android系统。

Hodor Fuzzer - 另一种通用型fuzzer。

libFuzzer- C/C++编写的目标进程内覆盖引导渐进式fuzzing引擎。

syzkaller- 一款针对Linux内核进行模糊测试的开源工具。

ansvif – 用于查找C/C++代码中的漏洞的高级跨平台模糊测试框架。

污点分析

用户输入如何影响执行

PANDA(构建于顶级QEMU系统上的新一代动态分析平台)

QIRA(QEMU交互式运行时分析器)

kfetch-toolkit – 执行高级记录引用的工具

符号执行SAT和SMT求解器

Z3 - 属于SMT Solver,用于判定First Order Logic公式的可满足性。

SMT-LIB - 旨在促进SMT研究与开发的国际计划。

参考

点击链接了解更多信息:https://www.ee.oulu.fi/research/ouspg/Fuzzers

基本工具

针对exploit开发人员和逆向工程师的工具。

Debuggers

Windbg – windows平台下强大的用户态和内核态调试工具。

Immunity Debugger- 专门用于加速漏洞利用程序的开发,辅助漏洞挖掘以及恶意软件分析。

OllyDbg – 一个新的动态追踪工具。

Mona.py(windbg和Immunity dbg的插件)

x64dbg – 用于Windows的开源x64/x32调试器。

Evan的调试器(EDB)- gdb前端。

GDB – Gnu调试器 – 最喜欢的Linux调试器。

PEDA – 针对GDB的Python Exploit开发助手。

Radare2 – 用于逆向工程和二进制文件分析的框架。

反编译以及更多

IDA Pro- 最好的反编译软件

binnavi – 二进制分析IDE,注释控制流程图和调用反编译代码的图形。

Capstone – Capstone是一个轻量级的多平台,多架构反编译框架。

其它

ltrace – 用来跟踪进程调用库函数的情况。

strace – 跟踪系统调用和信号。

漏洞应用程序

Exploit-DB -https://www.exploit-db.com(通过搜索相关的应用漏洞,并自行下载漏洞应用及EXP重现漏洞)

PacketStorm - https://packetstormsecurity.com/files/tags/exploit/

Fuzzgoat - 用于测试fuzzers的漏洞C程序。

模糊测试样本文件:

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

来自Mozilla的PDF测试语料库

MS Office文件格式文档

模糊测试套件 – fuzzing引擎测试集。包括不同的已知bug,如Heartbleed, c-ares $100K bug等。

反Fuzzing

反Fuzzing介绍:纵深防御

ref:一系列用于Fuzzing学习的资源汇总的更多相关文章

  1. 深度学习&机器学习资源汇总1

    本篇博客的目地,是对工作学习过程中所遇所见的一些有关深度学习.机器学习的优质资源,作分类汇总,方便自己查阅,也方便他人学习借用. 主要会涉及一些优质的理论书籍和论文.一些实惠好用的工具库和开源库.一些 ...

  2. 零基础学习openstack【完整中级篇】及openstack资源汇总

    1.你是如何学习openstack的?2.你对openstack的组件了解多少?3.你认为openstack该如何学习? 一直想写关于openstack的方面的内容,今天终于整理完成.算是完成一桩心事 ...

  3. Github上PHP资源汇总大全,php学习的好资料

    Github上PHP资源汇总大全,php学习的好资料 国外程序员ziadoz 在Github上收集整理了PHP的各种资源,内容包括模板.框架.数据库.安全等方面的库和工具.汇总了各种PHP资源,供各位 ...

  4. 数据可视化的优秀入门书籍有哪些,D3.js 学习资源汇总

    习·D3.js 学习资源汇总 除了D3.js自身以外,许多可视化工具包都是基于D3开发的,所以对D3的学习就显得很重要了,当然如果已经有了Javascript的经验,学起来也会不费力些. Github ...

  5. 【特别推荐】Node.js 入门教程和学习资源汇总

    这篇文章与大家分享一批很有用的 Node.js 入门教程和学习资源.Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  6. GitHub最全的前端资源汇总仓库(包括前端学习、开发资源、求职面试等)

    在GitHub上收集的最全的前端资源汇总(包括前端学习.前端开发资源.前端求职面试等) 个人结合github上各位大神分享的资源进行了简单的汇总整理,每一个条目下面都有丰富的资料,是前端学习.工作的好 ...

  7. jQuery EasyUI学习资源汇总

    jQuery EasyUI学习资源汇总 EasyUi – 1.入门 EasyUi – 2.布局Layout + 3.登录界面 EasyUi – 4.datwagrid 学习Jquery EasyUI的 ...

  8. 【Powershell 教程】学习资源汇总

    [Powershell 教程]学习资源汇总 一.书籍教程 1.<Windows PowerShell实战指南>第3版 作者:[美] Don,Jones(道·琼斯),Jeffery,Hick ...

  9. 机器学习&深度学习经典资料汇总,data.gov.uk大量公开数据

    <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...

随机推荐

  1. nodejs使用场景

    NodeJS的工作原理其实就是事件循环.可以说每一条NodeJS的逻辑都是写在回调函数里面的,而回调函数都是有返回之后才异步执行的! 既然NodeJS处理并发的能力强,但处理计算和逻辑的能力反而很弱, ...

  2. 居中div,居中浮动的元素

    定位法:position:absolute 如果子级div有定义宽和高的话就可以用这个方法.注意:margin-top,和margin-left的值均为高和宽值的一半 margin:auto法 这个也 ...

  3. java格式化字符串,在指定位置插入指定字符串,兼容中英文以及特殊字符,例如:换行,用于解决生成pdf换行问题等问题

    本博客是自己在学习和工作途中的积累与总结,仅供自己参考,也欢迎大家转载,转载时请注明出处.  http://www.cnblogs.com/king-xg/p/6370890.html 如果觉得对您有 ...

  4. C++设计实现算法时易犯错误

    1.未初始化 指针未初始化为NULL,造成判断条件出错 数值未初始化为0,造成数组超界,内存泄漏 2. long long输入时 lld or I64d 写成d一定出错 3.gcc编译报错:程序中有游 ...

  5. 你必须了解Spring的生态

    Spring不止是提供了IOC.AOP的功能,还提供了大量的基于Spring的项目,拿来用就行了,用于一站式开发,大大降低了开发的难度. 下面列举下主要的一些Spring的生态项目: Spring B ...

  6. JavaScript定义类的几种方式

    提起面向对象我们就能想到类,对象,封装,继承,多态.在<javaScript高级程序设计>(人民邮电出版社,曹力.张欣译.英文名字是:Professional JavaScript for ...

  7. 【CodeForces】576 D. Flights for Regular Customers

    [题目]D. Flights for Regular Customers [题意]给定n个点m条边的有向图,每条边有di表示在经过该边前必须先经过di条边,边可重复经过,求1到n的最小经过边数.n,m ...

  8. TreeMap put 操作分析

    public V put(K key, V value) { //t 表示当前节点,记住这个很重要!先把TreeMap 的根节点root 的引用赋值给当前节点 TreeMap.Entry<K,V ...

  9. 【洛谷P2515【HAOI2010】】软件安装

    题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大). 但是 ...

  10. 利用media query写响应式布局

    最近才接触到响应式布局的概念,之前用到的bootstrap就是一种响应式布局的框架.学习的时候参考了http://blog.csdn.net/shoyer/article/details/829301 ...