漏洞开发实战课程
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/exploit-dev-course-4y2a
技能介绍
要解决的问题
漏洞开发(exploit development)的学习路径通常很零散。新人可能今天看一篇关于 AFL++ 的博客,明天又在另一个仓库里零散地学 Syzkaller,缺乏统一的进度管理和实验环境标准。团队内部也常缺少一份结构化的培训大纲,导致新人上手质量参差不齐。这份技能资料把漏洞开发的入门训练整理成按周推进的课程路线,解决“学什么、按什么顺序学、每个阶段配什么实验”的问题。
技能如何工作
该技能将学习过程拆成周计划,当前公开内容包含 Week 1: Foundations and Fuzzing Basics,每天聚焦一个具体主题:
- Day 1–2:从 fuzzing 基础入手,使用
AFL++跑通第一个 C 程序,再尝试字典 fuzzing、persistent mode 等进阶选项,最后对一个真实文件格式解析器发起 fuzzing。 - Day 3:转向进程内 fuzzing,使用
FuzzTest编写简单的 fuzz target。 - Day 4:介绍
HonggFuzz,并对 OpenSSL server 与私钥进行 fuzzing 实验。 - Day 5:引入
Syzkaller,在 Linux VM 中对内核发起 fuzzing。 - Day 6:重点训练 crash 分析,使用
GDB、AddressSanitizer和afl-collect对之前产生的 crash 进行去重、分类与根因分析,并输出结构化报告。 - Day 7:通过 quiz、flashcards、重跑实验和协作讨论巩固本周内容。
每节课都包含 Goal、Reading(如 Ari Takanen 的 Fuzzing for Software Security Testing and Quality Assurance)、Online Resource 与 Exercise,可直接作为培训 checklist 使用。
适用边界与注意点
- 这份资料是一份课程大纲与实验指导,不是自动化漏洞利用工具,不会替你写出完整的 exploit payload。
- Week 1 的内容集中在 fuzzing 基础设施与 crash 分析,真正的漏洞利用进阶内容在后续课程中逐步展开。
- 实验需要在隔离环境(如 Linux VM)中进行,尤其是内核 fuzzing 与 crash 复现,避免在开发机上直接运行。
- 原始课程源自公开 GitHub 仓库,质量依赖社区维护,团队在采用前应自行走查一遍实验环境要求。
使用场景
- 安全研究员想从零建立 fuzzing 环境,需要按 Day 1–2 的步骤安装 AFL++ 并跑通第一个 C 程序
- 内核安全团队准备 Syzkaller 实验,需要在 Linux VM 中复现 Week 1 Day 5 的内核 fuzzing 流程
- 培训负责人要设计新人漏洞开发课表,需直接照搬 Week 1 每日 Goal/Reading/Exercise 结构
- 工程师拿到一批 fuzzing crash,需按 Day 6 的方法用 GDB 和 AddressSanitizer 去重并分类
适合人员
- 刚转岗或应届入职的安全研究员,想要一份从 fuzzing 到 crash 分析的系统学习路线
- 负责内部安全培训的工程师,需要按周组织漏洞开发课程并跟踪学员实验完成情况
- 做二进制漏洞研究的研发,希望在隔离 VM 中补齐 AFL++、HonggFuzz、Syzkaller 的动手经验
- 内核或系统软件团队的测试工程师,需要把 crash 去重和分类流程标准化并写进团队文档