开源fuzzers / 开源fuzzing 工具的最新列表(Fuzzers ,没有标准中文翻译,可以理解为模糊测试工具或者模糊器)
如果你知道有需要添加的部分,那么请在这里或在推特上@Peerlyst 来联系我
资源:开源 Fuzzers 结构的Peerpower 列表:
1. 开源Fuzzers 工具
2.Fuzzing 的线束或框架
3. 其它 Fuzzers 工具是免费的,但是和开源比不值得一提
4.Fuzzing 的有效超载
5. 博客将帮助你更好的了解Fuzz
6. 其它关于Fuzzing 博客或资源
7. 商业Fuzzers 工具
1. 开源Fuzzers
VUzzer
http://www.cs.vu.nl//~giuffrida/papers/vuzzer-ndss-2017.pdf
基于应用感知的自进化模糊工具。在这篇文章中,我们提出一个应用感知的进化模糊策略(不需要以前的知识应用或格式输入)。为了最小化地覆盖并扩展更深的路径,我们利用基于静态和动态分析的控制以及数据流功能,来推断应用程序的基本属性。与Application-agnostic 方法相比,这可以更快地生成有趣的输入。我们实行我们的模糊策略在VUzzer 上,并且用三种不同的数据评估它:DARPA 的大挑战二进制文件(CGC )、一组真实的应用程序(二进制输入解析器)和最近发布的LAVA 数据集。
Afl-fuzz (American fuzzy lop )
http://lcamtuf.coredump.cx/afl/
Afl-fuzz 是一种基于面向安全的模糊测试工具,它采用了一种新型的方式(编译时检测和遗传算法),来自动发掘干净的、有趣的测试案例,即在目标二进制中触发新的内部状态。这基本上改善了模糊代码的功能覆盖。该工具生成的简洁的合成语料库也可以用来传播其它更多的劳动型或资源密集型测试方案。
与其他仪器化的模糊工具相比,afl-fuzz 是以实用性而被设计的:它具有适度的性能开销,采用了多种高效的模糊战略,和努力最小化的技巧,基本上不需要配置,并且能够无缝处理复杂的、真实世界案例,以及常见的图像分析或文件压缩等。
Filebuster
一个非常快速和灵活的网络模糊工具
TriforceAFL
AFL / QEMU 模糊器具有全系统的仿真。这是AFL 的修补版本,支持使用QEMU 的全系统模糊测试。它所包含的QEMU 已经更新,允许在运行x86_64 的系统仿真器时进行分支机构跟踪。它也添加了额外的指令来启动AFL 的forkserver ,进行模糊设置,并标记测试用例的启动和停止。
Nightmare:
https://github.com/joxeankoret/nightmare
一个具有web 管理的分布式模糊测试套件。
Grr
DECREE 二进制的高吞吐量模糊器和仿真器
Randy:
http://ptrace-security.com/blog/randy-random-based-fuzzer-in-python/
Python 中的基于随机的模糊工具
IFuzzer
一个进化型的翻译模糊器
Dizzy:
https://github.com/ernw/dizzy
基于python 的模糊框架:
1. 可以发送到L2 以及上层(TCP / UDP / SCTP )
2. 能够处理奇长度分组字段(无需匹配字节边界,因此即使单个标志或7 位长字3. 也可以表示和模糊)
4. 非常容易的协议定义语法
5. 能够做多包状态的完全模糊,能够使用接收到的目标数据作为响应
Address Sanitizer:
https://github.com/Google/sanitizers
地址Sanitizer 、线Sanitizer 、记忆Sanitizer
Diffy:
https://github.com/twitter/diffy
使用Diffy 查找您的服务中的潜在错误
Wfuzz:
https://github.com/xmendez/wfuzz
Web 应用程序HTTP://www.edge-security.com/wfuzz.php
Go-fuzz:
https://github.com/Google/gofuzz
基于放弃的模糊测试
Sulley:
https://github.com/OpenRCE/sulley
Sulley 是一个积极开发的模糊引擎和模糊测试框架,由多个可扩展组件组成。Sulley (IMHO )超过了此前公布的大所属模糊技术、商业和公共领域的能力。框架的目标是不仅是可以简化数据表示,而且也可以简化数据传输和仪表。Sulley 是以 Monsters Inc. 的生物来命名的,因为,他是模糊的。写在python 内的。
Sulley_l2:
http://ernw.de/download/sulley_l2.tar.bz2
有些人可能记得2008 年发布的sulley_l2 ,它是sulley 模糊框架的修改版本,增强了第2 层发送功能和一堆(L2 )模糊脚本。所有的blinking, rebooting, mem-corrupting 引起了我们的一些关注。从那以后,我们继续写和使用这些模糊脚本,所以它的洞集合增长了。
CERT Basic Fuzzing Framework (BFF)For linux, OSX
https://github.com/CERTCC-Vulnerability-Analysis/certfuzz
http://www.cert.org/vulnerability-analysis/tools/bff.cfm
cert 基本模糊框架(BFF )是一个软件测试工具,它用于在linux 和mac os x 平台上运行的应用程序中寻找漏洞。BFF 对消耗文件输入的软件执行突变性的模糊测试。(突变性模糊测试是采取形式良好的输入数据并以各种方式破坏它的行为,寻找导致崩溃的情况。)BFF 自动收集导致了软件以独特方式使测试用例崩溃,以及利用崩溃来调试信息。BFF 的目标是去最小化软件供应商和安全研究人员通过模糊测试有效地发现和分析发现的安全漏洞过程中所需要的努力。
CERT Failure Observation Engine (FOE)For windows
http://www.cert.org/vulnerability-analysis/tools/foe.cfmhttps://github.com/CERTCC-Vulnerability-Analysis/certfuzz
The cert Failure Observation Engine (FOE) 是一个软件测试工具,它被用于在Windows 平台上运行的应用程序中发现漏洞。FOE 在消耗文件输入的软件上执行突变模糊测试。(突变性模糊测试是采取形式良好的输入数据并以各种方式破坏它的行为,寻找导致崩溃的情况。)FOE 自动收集导致了软件以独特方式使测试用例崩溃,以及利用崩溃来调试信息。FOE 的目标是去最小化软件供应商和安全研究人员通过模糊测试有效地发现和分析发现的安全漏洞过程中所需要的努力。
DranzerFor ActiveX Controls.
https://github.com/CERTCC-Vulnerability-Analysis/dranzer
Dranzer 是一个工具,使用户能够检查有效的技术,它用于模糊测试ActiveX 控件
Radamsaa general purpose fuzzer
https://github.com/aoh/radamsa
Radamsa 是一个用于鲁棒性测试的测试用例生成器,也称为fuzzer 。它可以用来测试一个程序是否可以承受格式错误以及潜在的恶意输入。它通过制造文件来工作(有趣的不同于通常给定的文件),然后将修改的文件提供给Target 程序,或者这样或通过一些脚本。radamsa 的主要卖点(而不是其他的模糊器)是:它是非常容易在大多数机器上运行,而且很容易从命令行脚本,这已经被用来找到程序中的一系列安全问题,而且你可能现在正在使用。
zzufApplication fuzzer
https://github.com/samhocevar/zzuf
zzuf 是一个透明的应用程序输入模糊器。 它的工作原理是截取文件操作并更改程序输入中的随机位。zzuf 的行为是确定性的,使得它很容易再现错误。 有关如何使用zzuf 的说明和示例,请参阅手册页和网站http://caca.zoy.org/wiki/zzuf
Backfuzz
https://github.com/localh0t/backfuzz
Backfuzz 是一个用python 写成的有着不同协议(FTP ,HTTP ,IMAP 等)的模糊工具。因为一般的想法是这个脚本有几个预定义的功能,所以谁想要编写自己的插件(为另一个协议)就可以在一些行这样做。
KEMUfuzzer
https://github.com/jrmuizel/kemufuzzer
KEmuFuzzer 是一个基于仿真或直接本地执行测试系统虚拟机的工具。 目前KEmuFuzzer 支持:BHOCS ,QEMU ,VMware 和virtualbox 。
Pathgrind
https://github.com/codelion/pathgrind
Pathgrind 使用基于路径的动态分析来fuzz linux / unix 二进制。 它是基于valgrind 被写在python 内的。
Wadi-fuzzer
https://www.sensepost.com/blog/2015/wadi-fuzzer/ https://gitlab.sensepost.com/saif/DOM-Fuzzer
Wadi 是基于web 浏览器语法的模糊器。 这个语法用于描述浏览器应该如何处理Web 内容,Wadi 转向并使用语法来打破浏览器。
Wadi 是一个Fuzzing 模块,用于NodeFuzz fuzzing Harness 并利用AddressSanitizer (ASan )在Linux 和Mac OSX 上进行测试。
万维网联盟(W3C )是一个国际组织,它开发开放标准以确保Web 的长期增长。 W3C 允许我们搜索语法并在我们的测试用例中使用。
LibFuzzer, Clang-format-fuzzer, clang-fuzzer
http://llvm.org/docs/LibFuzzer.html
http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format/fuzzer/ClangFormatFuzzer.cpp?view=markup
http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-fuzzer/ClangFuzzer.cpp?view=markup
我们在LibFuzzer 上实现了两个模糊器:clang-format-fuzzer 和clang-fuzzer 。Clang 格式大多是一个词法分析器,所以给它随机字节格式是会完美运行的,但也伴随着超过20 个错误。然而Clang 不仅仅是一个词法分析器,给它随机字节时几乎没有划伤其表面,所以除了测试随机字节,我们还在令牌感知模式中模糊了Clang 。两种模式中都发现了错误; 其中一些以前被AFL 检测到,另一些则不是:我们使用AddressSanitizer 运行这个模糊器,结果发现一些错误在没有它的情况下不容易被发现。
Perf-fuzzer
http://www.eece.maine.edu/~vweaver/projects/perf_events/validation/https://github.com/deater/perf_event_testshttp://web.eece.maine.edu/~vweaver/projects/perf_events/fuzzer/
用于Linux perf_event 子系统的测试套件
HTTP/2 Fuzzer
https://github.com/c0nrad/http2fuzz
HTTP2 模糊器内置于Golang 。
QuickFuzz
http://quickfuzz.org/
QuickFuzz 是一个语法模糊器,由QuickCheck ,模板Haskell 和Hackage 的特定库生成许多复杂的文件格式,如Jpeg ,Png ,Svg ,Xml ,Zip ,Tar 和更多! QuickFuzz 是开源的(GPL3 ),它可以使用其他错误检测工具,如zzuf ,radamsa ,honggfuzz 和valgrind 。
SymFuzz
https://github.com/maurer/symfuzz
http://ieeexplore.IEEE.org/xpls/abs_all.jsp?arnumber=7163057
摘要?我们提出了一个算法的设计,以最大化数量的bug 为黑盒子突变性的模糊给定一个程序和种子的输入。主要的直观性的是利用给定程序 - 种子对的执行轨迹上的白盒符号进行分析,来检测输入的BIT 位置之间的依赖性,然后使用这种依赖关系来为该程序种子对计算概率上最佳的突变比率。我们的结果是有希望的:我们发现使用相同的模糊时间,这比8 个应用程序中的三个以前的模糊器的平均错误多38.6 %。
OFuzz
https://github.com/sangkilc/ofuzz
OFuzz 是一个用OCaml 编写的模糊平台。 OFuzz 目前专注于在* nix 平台上运行的文件处理应用程序。 OFuzz 的主要设计原则是灵活性:必须容易添加/ 替换模糊组件(崩溃分类模块,测试用例生成器等)或算法(突变算法,调度算法)。
Bed
http://www.snake-basket.de/
网络协议fuzzer 。 BED 是一个程序,旨在检查守护程序的潜在缓冲区溢出、格式字符串等。
Neural Fuzzer
https://cifasis.github.io/neural-fuzzer/
神经模糊测试工具是一种实验性模糊器,它被设计使用国家最先进的机器,从一组初始文件学习。 它分为两个阶段:训练和生成。
Pulsar
https://github.com/hgascon/pulsar
协议学习,模拟和状态模糊器
Pulsar 是一个具有自动协议学习和模拟能力的网络模糊器。该工具允许通过机器学习技术来建模协议,例如聚类和隐马尔可夫模型。这些模型可以用于模拟Pulsar 与真实客户端或服务器之间进行通信,这些消息,在一系列模糊原语的结合下,让测试一个未知协议错误的实施在更深的状态协议。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课