secfigo/Awesome-Fuzzing

GitHub: secfigo/Awesome-Fuzzing

一份系统整理模糊测试(Fuzzing)与漏洞利用开发入门阶段所需学习资源的精选列表,涵盖书籍、课程、工具和实战靶场。

Stars: 5804 | Forks: 826

# 欢迎来到 Awesome Fuzzing [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 一份精选的 Fuzzing 资源列表(书籍、免费及付费课程、视频、工具、教程以及用于练习的易受攻击应用程序),用于学习 Fuzzing 以及漏洞利用开发的初始阶段(如根本原因分析)。 ### 目录 - [书籍](#books) - [课程](#courses) + [免费](#free) + [付费](#paid) - [视频](#videos) + [NYU Poly 课程视频](#nyu-poly-course-videos) + [会议演讲与教程](#conference-talks-and-tutorials) - [教程与博客](#tutorials-and-blogs) - [工具](#tools) + [云端 Fuzzing 工具](#cloud-fuzzers) + [文件格式 Fuzzing 工具](#file-format-fuzzers) + [网络协议 Fuzzing 工具](#network-protocol-fuzzers) + [浏览器 Fuzzing 工具](#browser-fuzzing) + [污点分析](#taint-analysis) + [符号执行 SAT 与 SMT 求解器](#symbolic-execution-sat-and-smt-solvers) + [必备工具](#essential-tools) - [易受攻击的应用程序](#vulnerable-applications) - [反 Fuzzing](#anti-fuzzing) - [定向 Fuzzing](#directed-fuzzing) - [贡献](#contributing) # Awesome Fuzzing 资源 ## 书籍 *关于 Fuzzing 的书籍* - [Fuzzing: Brute Force Vulnerability Discovery](https://www.amazon.com/Fuzzing-Brute-Force-Vulnerability-Discovery/dp/0321446119) 作者:Michael Sutton, Adam Greene, Pedram Amini。 - [Fuzzing for Software Security Testing and Quality Assurance ](https://www.amazon.com/Fuzzing-Software-Security-Testing-Assurance/dp/1608078507) 作者:Ari Takanen, Charles Miller, Jared D Demott 与 Atte Kettunen。 - [Open Source Fuzzing Tools](https://www.amazon.com/Open-Source-Fuzzing-Tools-Rathaus/dp/1597491950) 作者:Gadi Evron 与 Noam Rathaus。 - [Gray Hat Python](https://www.amazon.com/Gray-Hat-Python-Programming-Engineers/dp/1593271921) 作者:Justin Seitz。 - [The Fuzzing Book](https://www.fuzzingbook.org/) 作者:Andreas Zeller, Rahul Gopinath, Marcel Böhme, Gordon Fraser, 以及 Christian Holler。 ## 课程 *关于 Fuzzing 的课程/培训视频* ### 免费 [NYU Poly ( 更多详情请观看视频 )](https://vimeo.com/5236104 ) - 由 Dan Guido 免费提供。 [Samclass.info ( 查看项目部分和第 17 章 ) ](https://samsclass.info/127/127_F15.shtml) - 由 Sam 提供。 [Modern Binary Exploitation ( RPISEC ) - 第 15 章 ](https://github.com/RPISEC/MBE) - 由 RPISEC 提供。 [Offensive Computer Security - 第 6 周](https://web.archive.org/web/20200414165953/https://www.cs.fsu.edu/~redwood/OffensiveComputerSecurity/lectures.html) - 由 W. Owen Redwood 和 Xiuwen Liu 教授提供。 ### 付费 [Offensive Security, Cracking The Perimeter ( CTP ) 和 Advanced Windows Exploitation ( AWE )](https://www.offensive-security.com/information-security-training/) [SANS 660/760 Advanced Exploit Development for Penetration Testers](https://www.sans.org/course/advanced-exploit-development-penetration-testers) [Exodus Intelligence - Vulnerability development master class](https://blog.exodusintel.com/2016/05/18/exodus-intelligence-2016-training-course/) [Ada Logics - Applied Source Code Fuzzing](https://adalogics.com/training-source-fuzz) [FuzzingLabs Academy (C/C++, Rust, Go fuzzing)](https://academy.fuzzinglabs.com/) [Signal Labs - Vulnerability Research & Fuzzing](https://signal-labs.com/trainings/vulnerability-research-fuzzing/) ## 视频 *探讨 Fuzzing 技术、工具和最佳实践的视频* ### NYU Poly 课程视频 [Fuzzing 101 (第一部分)](https://vimeo.com/5236104) - 由 Mike Zusman 提供。 [Fuzzing 101 (第二部分)](https://vimeo.com/5237484) - 由 Mike Zusman 提供。 [Fuzzing 101 (2009)](https://vimeo.com/7574602) - 由 Mike Zusman 提供。 [Fuzzing - Coursera 上的软件安全课程](https://www.coursera.org/lecture/software-security/fuzzing-VgyOn) - 由马里兰大学提供。 ### 会议演讲与教程 [Attacking Antivirus Software's Kernel Driver](https://github.com/bee13oy/AV_Kernel_Vulns/tree/master/Zer0Con2017) [Fuzzing the Windows Kernel - OffensiveCon 2020](https://github.com/yoava333/presentations/blob/master/Fuzzing%20the%20Windows%20Kernel%20-%20OffensiveCon%202020.pdf) [Youtube 上各种 Fuzzing 演讲与展示的播放列表 ](https://www.youtube.com/playlist?list=PLtPrYlwXDImiO_hzK7npBi4eKQQBgygLD) - 这些视频中包含大量优质内容。 [Browser bug hunting - Memoirs of a last man standing](https://vimeo.com/109380793) - 由 Atte Kettunen 提供 [Coverage-based Greybox Fuzzing as Markov Chain](https://www.comp.nus.edu.sg/~mboehme/paper/CCS16.pdf) [DerbyCon 2016: Fuzzing basics...or how to break software](http://www.irongeek.com/i.php?page=videos/derbycon6/411-fuzzing-basicshow-to-break-software-grid-aka-scott-m) [Fuzz Theory](https://www.youtube.com/watch?v=5rE8xEg5tXk&list=PLSkhUfcCXvqG6FRTCCxIfoMK6rw3NZvb6) - 由 Brandon Falk 提供 ## 教程与博客 *解释 Fuzzing 方法论、技术和最佳实践的教程与博客* [ARMored coreSight: Towards Efficient Binary-only Fuzzing](https://ricercasecurity.blogspot.com/2021/11/armored-coresight-towards-efficient.html) [Fuzzing Microsoft's RDP Client using Virtual Channels: Overview & Methodology](https://thalium.github.io/blog/posts/fuzzing-microsoft-rdp-client-using-virtual-channels/) [Fuzzing Closed Source PDF Viewers](https://www.gosecure.net/blog/2019/07/30/fuzzing-closed-source-pdf-viewers/) [Fuzzing Image Parsing in Windows, Part One: Color Profiles](https://www.mandiant.com/resources/fuzzing-image-parsing-in-windows-color-profiles) [Fuzzing Image Parsing in Windows, Part Two: Uninitialized Memory](https://www.mandiant.com/resources/fuzzing-image-parsing-in-windows-uninitialized-memory) [Fuzzing Image Parsing in Windows, Part Three: RAW and HEIF](https://www.mandiant.com/resources/fuzzing-image-parsing-three) [Fuzzing the Office Ecosystem](https://research.checkpoint.com/2021/fuzzing-the-office-ecosystem/) [Effective File Format Fuzzing](https://j00ru.vexillium.org/slides/2016/blackhat.pdf) - Mateusz “j00ru” Jurczyk @ 黑帽欧洲 2016,伦敦 [A year of Windows kernel font fuzzing Part-1 the results](https://googleprojectzero.blogspot.com/2016/06/a-year-of-windows-kernel-font-fuzzing-1_27.html) - 由 Google Project Zero 撰写的精彩文章,描述了进行 Fuzzing 和创建 Fuzzer 所需的步骤。 [A year of Windows kernel font fuzzing Part-2 the techniques](https://googleprojectzero.blogspot.com/2016/07/a-year-of-windows-kernel-font-fuzzing-2.html) - 由 Google Project Zero 撰写的精彩文章,描述了进行 Fuzzing 和创建 Fuzzer 所需的步骤。 [Interesting bugs and resources at fuzzing project](https://blog.fuzzing-project.org/) - 来自 fuzzing-project.org。 [Fuzzing workflows; a fuzz job from start to finish](https://foxglovesecurity.com/2016/03/15/fuzzing-workflows-a-fuzz-job-from-start-to-finish/) - 由 @BrandonPrry 提供。 [A gentle introduction to fuzzing C++ code with AFL and libFuzzer](http://jefftrull.github.io/c++/clang/llvm/fuzzing/sanitizer/2015/11/27/fuzzing-with-sanitizers.html) - 由 Jeff Trull 提供。 [A 15 minute introduction to fuzzing](https://web.archive.org/web/20161129095601/https://www.mwrinfosecurity.com/our-thinking/15-minute-guide-to-fuzzing/) - 由 MWR Security 的伙伴们提供。 [Fuzzing 博客与书籍](https://fuzzinginfo.wordpress.com/resources/) - 来自 fuzzing.info [Root Cause Analysis of the Crash during Fuzzing]( https://www.corelan.be/index.php/2013/02/26/root-cause-analysis-memory-corruption-vulnerabilities/) - 来自 Corelan Team。 [Root cause analysis of integer flow](https://www.corelan.be/index.php/2013/07/02/root-cause-analysis-integer-overflows/) - 来自 Corelan Team。 [Creating custom peach fuzzer publishers](http://blog.opensecurityresearch.com/2014/01/creating-custom-peach-fuzzer-publishers.html) - 来自 Open Security Research [7 Things to Consider Before Fuzzing a Large Open Source Project](https://www.linux.com/news/7-things-consider-fuzzing-large-open-source-project/) - 由 Emily Ratliff 提供。 ##### 从 Fuzzing 到漏洞利用: [From fuzzing to 0-day](https://blog.techorganic.com/2014/05/14/from-fuzzing-to-0-day/) - 由 Harold Rodriguez(@superkojiman) 提供。 [From crash to exploit](https://www.corelan.be/index.php/2013/02/26/root-cause-analysis-memory-corruption-vulnerabilities/) - 来自 Corelan Team。 ##### Peach Fuzzer 相关教程 [Peach Fuzzer Introductionh](https://peachtech.gitlab.io/peach-fuzzer-community/Introduction.html) [Fuzzing with Peach Part 1](http://www.flinkd.org/fuzzing-with-peach-part-1/) - 由 Corelan Team 的 Jason Kratzer 提供 [Fuzzing with Peach Part 2](http://www.flinkd.org/fuzzing-with-peach-part-2-fixups-2/) - 由 Corelan Team 的 Jason Kratzer 提供。 [Auto generation of Peach pit files/fuzzers](http://web.archive.org/web/20181003092741/http://doc.netzob.org/en/latest/tutorials/peach.html) - 由 Frédéric Guihéry, Georges Bossert 提供。 ##### AFL Fuzzer 相关教程 [Creating a fuzzing harness for FoxitReader 9.7 ConvertToPDF Function](https://www.signal-labs.com/blog/foxit-97-fuzz) [50 CVEs in 50 Days: Fuzzing Adobe Reader](https://research.checkpoint.com/2018/50-adobe-cves-in-50-days/) [Fuzzing sockets, part 1: FTP servers](https://securitylab.github.com/research/fuzzing-sockets-FTP) [Fuzzing software: common challenges and potential solutions (Part 1) ](https://securitylab.github.com/research/fuzzing-challenges-solutions-1) [Fuzzing software: advanced tricks (Part 2)](https://securitylab.github.com/research/fuzzing-software-2) [Fuzzing workflows; a fuzz job from start to finish](https://foxglovesecurity.com/2016/03/15/fuzzing-workflows-a-fuzz-job-from-start-to-finish/) - 由 @BrandonPrry 提供。 [Fuzzing capstone using AFL persistent mode](https://toastedcornflakes.github.io/articles/fuzzing_capstone_with_afl.html) - 由 @toasted_flakes 提供 [RAM disks and saving your SSD from AFL Fuzzing](http://cipherdyne.org/blog/2014/12/ram-disks-and-saving-your-ssd-from-afl-fuzzing.html) [Bug Hunting with American Fuzzy Lop](https://josephg.com/blog/bug-hunting-with-american-fuzzy-lop/) [Advanced usage of American Fuzzy Lop with real world examples](https://volatileminds.net/2015/07/01/advanced-afl-usage.html) [Segfaulting Python with afl-fuzz](https://tomforb.es/segfaulting-python-with-afl-fuzz) [Fuzzing With AFL-Fuzz, a Practical Example ( AFL vs Binutils )](https://www.evilsocket.net/2015/04/30/Fuzzing-with-AFL-Fuzz-a-Practical-Example-AFL-vs-binutils/) [The Importance of Fuzzing...Emulators?](https://mgba.io/2016/09/13/fuzzing-emulators/) [How Heartbleed could've been found](https://blog.hboeck.de/archives/868-How-Heartbleed-couldve-been-found.html) [Filesystem Fuzzing with American Fuzzy lop](https://events.static.linuxfound.org/sites/events/files/slides/AFL%20filesystem%20fuzzing%2C%20Vault%202016_0.pdf) [Fuzzing Perl/XS modules with AFL](https://medium.com/@dgryski/fuzzing-perl-xs-modules-with-afl-4bfc2335dd90) [How to fuzz a server with American Fuzzy Lop](https://www.fastly.com/blog/how-fuzz-server-american-fuzzy-lop) - 由 Jonathan Foote 提供 [Fuzzing with AFL Workshop - a set of challenges on real vulnerabilities](https://github.com/ThalesIgnite/afl-training) [Fuzzing 101 - PHDays](https://github.com/RootUp/PHDays9) ##### libFuzzer 相关教程 [libFuzzer Tutorial](https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md) [Hunting for bugs in VirtualBox (First Take)](http://blog.paulch.ru/2020-07-26-hunting-for-bugs-in-virtualbox-first-take.html) [libFuzzer Workshop: "Modern fuzzing of C/C++ Projects"](https://github.com/Dor1s/libfuzzer-workshop) ##### honggfuzz 相关教程 [Fuzzing ImageIO](https://googleprojectzero.blogspot.com/2020/04/fuzzing-imageio.html) [Double-Free RCE in VLC. A honggfuzz how-to](https://www.pentestpartners.com/security-blog/double-free-rce-in-vlc-a-honggfuzz-how-to/) ##### Spike Fuzzer 相关教程 [Fuzzing with Spike to find overflows](https://null-byte.wonderhowto.com/how-to/hack-like-pro-build-your-own-exploits-part-3-fuzzing-with-spike-find-overflows-0162789/) [Fuzzing with Spike](https://samsclass.info/127/proj/p18-spike.htm) - 来自 samclass.info ##### FOE Fuzzer 相关教程 [Fuzzing with FOE](https://samsclass.info/127/proj/p16-fuzz.htm) - 来自 Samclass.info ##### SMT/SAT 求解器教程 [Z3 - A guide](https://www.philipzucker.com/z3-rise4fun/guide.html) - Getting Started with Z3: A Guide ##### 构建反馈式 Fuzzer(用于教学目的) [Building A Feedback Fuzzer](https://blog.fadyothman.com/tag/myfuzzer/) - 由 @fady_othman 提供 ## 工具 *有助于对应用程序进行 Fuzzing 的工具* ### 云端 Fuzzing 工具 *有助于在云环境中进行 Fuzzing 的 Fuzzer。* [Cloudfuzzer](https://github.com/ouspg/cloudfuzzer) - 一个云端 Fuzzing 框架,使得在云环境中轻松运行自动化 Fuzzing 测试成为可能。 [ClusterFuzzer](https://google.github.io/clusterfuzz/) - ClusterFuzzer,可扩展的开源 Fuzzing 基础设施。Google 使用它来对 Chrome 浏览器进行 Fuzzing。 [Fuzzit](https://fuzzit.dev) - Fuzzit,持续 Fuzzing 即服务平台。对开源项目免费。被多个开源项目(systemd, radare2)和闭源项目使用。如需加入开源计划,请发送邮件至 oss@fuzzit.dev ### 文件格式 Fuzzing 工具 *有助于对 pdf、mp3、swf 等文件格式进行 Fuzzing 的 Fuzzer。* [Jackalope](https://github.com/googleprojectzero/Jackalope) [Rehepapp](https://github.com/FoxHex0ne/Rehepapp) [Newer version of Rehepapp](https://github.com/FoxHex0ne/Rehepapp) [pe-afl combines static binary instrumentation on PE binary and WinAFL](https://github.com/wmliang/pe-afl) [MiniFuzz - Wayback Machine 链接](https://web.archive.org/web/20140512203517/http://download.microsoft.com/download/D/6/E/D6EDC908-A1D7-4790-AB0B-66A8B35CD931/MiniFuzzSetup.msi) - 微软提供的基础文件格式 Fuzzing 工具。(已不再微软网站上提供)。 [BFF from CERT](https://resources.sei.cmu.edu/library/asset-view.cfm?assetID=507974) - 针对文件格式的基础 Fuzzing 框架。 [AFL Fuzzer (仅限 Linux)]( http://lcamtuf.coredump.cx/afl/) - 由 Michal Zalewski(又名 lcamtuf)开发的 American Fuzzy Lop Fuzzer [Win AFL](https://github.com/googleprojectzero/winafl) - AFL 的一个分支,用于 Fuzzing Windows 二进制文件 [Shellphish Fuzzer](https://github.com/shellphish/fuzzer) - AFL 的 Python 接口,允许轻松注入测试用例及其他功能。 [TriforceAFL](https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2016/june/project-triforce-run-afl-on-everything/) - AFL 的修改版本,支持对没有源代码的应用程序进行 Fuzzing。 [AFLGo](https://github.com/aflgo/aflgo) - 使用 AFL 的定向灰盒 Fuzzing,用于 Fuzzing 程序的特定位置。 [Peach Fuzzer](https://sourceforge.net/projects/peachfuzz/) - 有助于创建自定义简易和智能 Fuzzer框架。 [MozPeach](https://github.com/MozillaSecurity/peach) - 由 Mozilla Security 开发的 Peach 2.7 分支版本。 [Failure Observation Engine (FOE)](https://vuls.cert.org/confluence/display/tools/CERT+FOE+-+Failure+Observation+Engine) - 针对 Windows 应用程序的基于变异的文件 Fuzzing 测试工具。 [rmadair](http://rmadair.github.io/fuzzer/) - 基于变异的文件 Fuzzer,使用 PyDBG 监视感兴趣的信号。 [honggfuzz](https://github.com/google/honggfuzz) - 具有有趣分析选项的通用、易用的 Fuzzer。支持基于代码覆盖率的反馈驱动 Fuzzing。支持 GNU/Linux、FreeBSD、Mac OSX 和 Android。 [zzuf](https://github.com/samhocevar/zzuf) - 透明的应用程序输入 Fuzzer。它通过拦截文件操作并更改程序输入中的随机位来工作。 [radamsa](https://github.com/aoh/radamsa) - 通用 Fuzzer 和测试用例生成器。 [binspector](https://github.com/binspector/binspector) - 二进制格式分析与 Fuzzing 工具 [grammarinator](https://github.com/renatahodovan/grammarinator) - 基于 ANTLR v4 语法的文件格式 Fuzzing 工具(ANTLR 项目中已提供大量现成的语法)。 [Sloth](https://github.com/ant4g0nist/sloth) - Sloth 🦥 是一个用于 Fuzzing Android 原生库的覆盖率引导 Fuzzing 框架,利用了 libFuzzer 和 QEMU 用户模式仿真。 [ManuFuzzer](https://github.com/ant4g0nist/ManuFuzzer) - 针对 macOS 的二进制代码覆盖率 Fuzzer,基于 libFuzzer 和 LLVM。 ### 网络协议 Fuzzing 工具 *有助于对使用 HTTP、SSH、SMTP 等基于网络协议的应用程序进行 Fuzzing 的 Fuzzer。* [Peach Fuzzer](https://sourceforge.net/projects/peachfuzz/) - 有助于创建自定义简易和智能 Fuzzer 的框架。 [Sulley](https://github.com/OpenRCE/sulley) - 由 Pedram Amini 开发的 Fuzzer 开发与 Fuzzing 测试框架,由多个可扩展的组件构成。 [boofuzz](https://github.com/jtpereyda/boofuzz) - Sulley 框架的分支和继任者。 [Spike](http://www.immunitysec.com/downloads/SPIKE2.9.tgz) - 类似于 Sulley 的 Fuzzer 开发框架,Sulley 的前身。 [Metasploit Framework](https://github.com/rapid7/metasploit-framework) - 一个包含部分 Fuzzing 功能(通过 Auxiliary 模块实现)的框架。 [Nightmare](https://github.com/joxeankoret/nightmare) - 带有 Web 管理界面的分布式 Fuzzing 测试套件,支持使用网络协议进行 Fuzzing。 [rage_fuzzer](https://github.com/deanjerkovich/rage_fuzzer) - 一个无感知协议的傻瓜式数据包 Fuzzer/重放器。 [Fuzzotron](https://github.com/denandz/fuzzotron) - 支持 TCP、UDP 和多线程的简单网络 Fuzzer。 [Mutiny](https://github.com/Cisco-Talos/mutiny-fuzzer) - Mutiny Fuzzing Framework 是一个网络 Fuzzer,通过基于变异的 Fuzzer 重放 PCAP 数据包。 [Fuzzing For Worms](https://github.com/dobin/ffw) - 针对网络服务器的 Fuzzing 框架。 [AFL (带有网络补丁)](https://github.com/jdbirdwell/afl) - 能够进行网络 Fuzzing 的非官方版 American Fuzzy Lop。 [AFLNet](https://github.com/aflnet/aflnet) - 针对网络协议的灰盒 Fuzzer(AFL 的扩展)。 [Pulsar](https://github.com/hgascon/pulsar) - 协议学习、仿真与有状态 Fuzzer。 ### 浏览器 Fuzzing [BFuzz](https://github.com/RootUp/BFuzz) - 基于输入的浏览器 Fuzzing 框架。 [Fuzzinator](https://github.com/renatahodovan/fuzzinator) - Fuzzinator 随机测试框架 [Grizzly](https://github.com/MozillaSecurity/grizzly) - 跨平台浏览器 Fuzzing 框架 ### 杂项 *其他值得关注的 Fuzzer,如内核 Fuzzer、通用 Fuzzer 等。* [Choronzon](https://github.com/CENSUS/choronzon) - 基于进化知识的 Fuzzer [QuickFuzz](https://github.com/CIFASIS/QuickFuzz) - 用 Haskell 编写的工具,旨在利用现成且著名的 Fuzzer 来测试第三方软件中常见文件格式的意外输入。 [gramfuzz](https://github.com/d0c-s4vage/gramfuzz) - 基于语法的 Fuzzer,允许定义复杂的语法来建模文本和二进制数据格式 [KernelFuzzer](https://github.com/mwrlabs/KernelFuzzer) - 跨平台内核 Fuzzing 框架。 [honggfuzz](http://honggfuzz.com/) - 具有有趣分析选项的通用、易用的 Fuzzer。 [Hodor Fuzzer](https://github.com/nccgroup/hodor) - 又一个通用 Fuzzer。 [libFuzzer](http://llvm.org/docs/LibFuzzer.html) - 针对用 C/C++ 编写的目标的进程内、覆盖率引导、进化型 Fuzzing 引擎。 [syzkaller](https://github.com/google/syzkaller) - 分布式、无监督、覆盖率引导的 Linux 系统调用 Fuzzer。 [ansvif](https://oxagast.github.io/ansvif/) - 一个旨在发现 C/C++ 代码中漏洞的高级跨平台 Fuzzing 框架。 [Tribble](https://github.com/SatelliteApplicationsCatapult/tribble) - 易用的、覆盖率引导的 JVM Fuzzing 框架。 [go-fuzz](https://github.com/dvyukov/go-fuzz) - 针对 Go 包的覆盖率引导测试工具。 [FExM](https://github.com/fgsect/fexm) - 自动化大规模 Fuzzing 框架 [Jazzer](https://github.com/CodeIntelligenceTesting/jazzer) - 基于 libFuzzer 的针对 Java 虚拟机的覆盖率引导、进程内 Fuzzer。 [cifuzz](https://github.com/CodeIntelligenceTesting/cifuzz) - 用于在多种语言和目标中执行覆盖率引导 Fuzzing 测试的命令行工具。 [WebGL Fuzzer](https://github.com/ant4g0nist/webgl-fuzzer) - WebGL Fuzzer [fast-check](https://fast-check.dev/) - 用 TypeScript 编写的 Fuzzer 工具,旨在针对 JavaScript 代码运行意外输入。 ### 污点分析 *用户输入如何影响执行* [PANDA ( Platform for Architecture-Neutral Dynamic Analysis )](https://github.com/moyix/panda) [QIRA (QEMU Interactive Runtime Analyser)](http://qira.me/) [kfetch-toolkit](https://github.com/j00ru/kfetch-toolkit) - 用于执行操作系统内核内存引用高级日志记录的工具 [moflow](https://github.com/vrtadmin/moflow) - 一个软件安全框架,包含用于漏洞发现和分类的工具。 ### 符号执行 SAT 与 SMT 求解器 [Z3](https://github.com/Z3Prover/z3) - 来自 Microsoft Research 的定理证明器。 [SMT-LIB](http://smtlib.cs.uiowa.edu/) - 旨在促进模理论可满足性(SMT)研究和开发的国际倡议。 [Symbolic execution with KLEE: From installation and introduction to bug-finding in open source software](https://adalogics.com/blog/symbolic-execution-with-klee) - 一组包含四个教学视频的系列教程,介绍了 KLEE,从如何入门 KLEE 开始,以在真实代码中查找内存损坏漏洞的演示结束。 ### 参考文献 我没有将像 AxMan 这样的经典工具包含在内,请参考以下链接获取更多信息。 https://www.ee.oulu.fi/research/ouspg/Fuzzers ### 必备工具 *漏洞利用开发人员和逆向工程师的常用工具* #### 调试器 [Windbg](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools) - 漏洞利用编写者首选的调试器。 [Immunity Debugger](http://debugger.immunityinc.com) - Immunity Sec 开发的调试器。 [OllyDbg ](http://www.ollydbg.de/) - 逆向工程师和漏洞利用编写者都首选的调试器。 [Mona.py ( Windbg 和 Immunity dbg 的插件 )](https://github.com/corelan/mona/) - 让漏洞利用开发人员工作更轻松的强大工具。 [x64dbg](https://github.com/x64dbg/) - Windows 上的开源 x64/x32 调试器。 [Evan's Debugger (EDB)](http://codef00.com/projects#debugger) - GDB 的前端。 [GDB - Gnu Debugger](http://www.sourceware.org/gdb/) - 最受欢迎的 Linux 调试器。 [PEDA](https://github.com/longld/peda) - GDB 的 Python 漏洞利用开发辅助工具。 [Radare2](http://www.radare.org/r/) - 用于逆向工程和分析二进制文件的框架。 #### 反汇编器及其他 *反汇编器、反汇编框架等。* [IDA Pro](https://www.hex-rays.com/products/ida/index.shtml) - 最佳反汇编器 [binnavi](https://github.com/google/binnavi) - 二进制分析 IDE,为反汇编代码的控制流图和调用图添加注释。 [Capstone](https://github.com/aquynh/capstone) - Capstone 是一个轻量级的多平台、多架构反汇编框架。 #### 其他 [ltrace](http://ltrace.org/) - 拦截库调用 [strace](https://sourceforge.net/projects/strace/) - 拦截系统调用 ## 易受攻击的应用程序 Exploit-DB - https://www.exploit-db.com (搜索并挑选带有相应可下载应用程序的漏洞利用程序,使用你选择的 Fuzzer 重现该漏洞利用) PacketStorm - https://packetstormsecurity.com/files/tags/exploit/ [Fuzzgoat](https://github.com/fuzzstati0n/fuzzgoat) - 用于测试 Fuzzer 的易受攻击的 C 程序。 [vulnserver](https://github.com/stephenbradshaw/vulnserver) - 用于测试 Fuzzer 的易受攻击的服务器。 ##### 用于在 Fuzzing 期间进行种子设定的样本文件: https://files.fuzzing-project.org/ [来自 Mozilla 的 PDF 测试语料库](https://github.com/mozilla/pdf.js/tree/master/test/pdfs) [MS Office 文件格式文档](https://www.microsoft.com/en-us/download/details.aspx?id=14565) [Fuzzer Test Suite](https://github.com/google/fuzzer-test-suite) - 针对 Fuzzing 引擎的一组测试。包含不同的知名漏洞,如 Heartbleed、c-ares 10万美元漏洞等。 [Fuzzing Corpus](https://github.com/strongcourage/fuzzing-corpus) - 一个语料库,包含用于在 Fuzzing 文献中对多个目标进行 Fuzzing 的各种文件格式。 ## 反 Fuzzing [Introduction to Anti-Fuzzing: A Defence In-Depth Aid](https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2014/january/introduction-to-anti-fuzzing-a-defence-in-depth-aid/) [Fuzzification: Anti-Fuzzing Techniques](https://www.usenix.org/conference/usenixsecurity19/presentation/jung) [AntiFuzz: Impeding Fuzzing Audits of Binary Executables](https://www.usenix.org/conference/usenixsecurity19/presentation/guler) ## 定向 Fuzzing [Awesome Directed Fuzzing](https://github.com/strongcourage/awesome-directed-fuzzing):精选的优秀定向 Fuzzing 研究论文列表。 ## 贡献 [详情请参考 contributing.md 中的指南](Contributing.md)。 感谢以下对本项目做出贡献的伙伴们。 + [Tim Strazzere](https://twitter.com/timstrazz) + [jksecurity](https://github.com/jksecurity) + [以及这些了不起的人](https://github.com/secfigo/Awesome-Fuzzing/graphs/contributors)
标签:C2框架, CISA项目, CTF练习, Exploit Development, Fuzzing, TLS抓取, 利用开发, 协议模糊测试, 安全学习资源, 安全测试, 安全课程, 定向模糊测试, 抗模糊测试, 攻击性安全, 文件格式模糊测试, 根本原因分析, 模糊测试资源, 浏览器模糊测试, 漏洞分析, 漏洞靶场, 符号执行, 网络安全, 网络安全书籍, 路径探测, 软件安全, 防御加固, 防御检测, 隐私保护