适合人群
- 希望从黑盒测试转向源代码审计的渗透测试工程师和漏洞赏金猎人。
- 需要一套可重复的审计方法、并希望学会分辨扫描器结果的应用安全工程师。
- 负责审阅 Pull Request、希望在合并前发现安全缺陷的高级开发人员和技术负责人。
学完后您能做到
- 梳理陌生的代码仓库:入口点、信任边界,以及值得投入时间的代码。
- 把不可信输入从源头追踪到危险的使用点,并区分真实漏洞与扫描器误报。
- 发现工具会遗漏的身份认证、授权、租户隔离和业务逻辑缺陷。
- 在本地实验环境中证明可利用性,并用产品负责人能够接受的方式论证风险等级。
- 通过补丁对比以及自定义的 Semgrep 或 CodeQL 查询,找出已知漏洞的变体。
- 写出包含根本原因、证据和修复方案的发现,并判断拟议的修复是否站得住脚。
先修要求
- 能熟练阅读 JavaScript/TypeScript、PHP、Java 或 Python 中至少一种语言的代码。
- 了解 HTTP 以及常见的 Web 漏洞类型,达到 OWASP Top 10 的水平。
- 会使用 git、Docker 和命令行,并能够以英语学习。我们会先进行简短的水平评估,让学习计划适合您。
课程大纲
共八个模块。您的学习计划会按照适合您水平的顺序和深度来学习:已掌握的内容快速带过,需要的地方多花时间。
从安全角度阅读陌生代码库把一个从未见过的代码仓库,变成一张攻击者能够触达哪些部分的地图。
- 入口点:路由、控制器、后台任务、Webhook 和消息消费者
- 隐藏路由和中间件的框架约定
- 一页纸的威胁模型:资产、参与者和信任边界
- 在有限时间内把审计精力放在风险所在之处
源、汇与数据流追踪不可信输入,直到它造成破坏的地方。
- 手动进行从源到汇的追踪,包括二阶数据流
- 校验、净化和编码,以及各自在什么情况下起保护作用
- SQL、命令、模板、文件路径、SSRF 和反序列化等危险汇点
- 分辨 SAST 结果:确认、排除,还是深入调查
身份认证与会话审计决定“用户是谁”的那部分代码。
- 登录、注册、密码重置和多因素认证流程
- 令牌与会话的生命周期:签发、校验、过期和吊销
- JWT 校验错误,以 fast-jwt 的补丁链为案例
- OAuth 和 OpenID Connect 中的重定向、state 和 audience 校验
授权与租户隔离找到那个缺失的检查——它让一个客户能够访问另一个客户的数据。
- 处理函数、中间件和 ORM 查询中的对象级与功能级检查(BOLA、BFLA、IDOR)
- 批量赋值与过度提交
- 查询、缓存和后台任务中的租户范围限定
- GraphQL 解析器和管理端点
业务逻辑、状态与并发找出破坏产品所依赖规则的代码。
- 不变量:必须始终成立的条件,以及破坏它们的代码
- 支付、优惠券和配额中的竞态条件
- 信任客户端提交的价格、角色和标识符
- 算术问题:溢出、截断和移位宽度(CVE-2025-37858)
解析器、平台与供应链审视您的代码对周围一切所做的假设。
- 路径规范化与解析器差异(CVE-2026-21589、CVE-2026-104935)
- 查找失败后消失的检查(CVE-2024-26855)
- React2Shell 之后的服务端渲染边界
- Axios npm 投毒事件之后的依赖、构建脚本和锁文件
证明可利用性与影响从一行可疑代码,走到一个经确认、已排好优先级的发现。
- 前提条件、可达性和攻击者可控性
- 在本地实验环境中完成最小化验证
- 结合 CVSS 和业务背景评定风险等级
- 使用 Semgrep 和 CodeQL 进行补丁对比和变体分析
修复、报告与 AI 编写的代码让漏洞得到修复,并且不再复发。
- 开发人员愿意接受的发现:位置、根本原因、证据和修复
- 审查拟议的修复及其回归测试
- 能够消除整类缺陷的安全默认设置
- 审查 AI 生成的代码,并核实 AI 审查工具给出的结论
实操练习
追踪实验
对我为课程准备的应用进行有指导的审计,您将沿着真实的框架代码追踪输入,直到存在漏洞的那一行。
变体挖掘
从开源项目中一个已发布的补丁出发,在该项目存在漏洞的版本中寻找其他地方的同类错误。
修复审查
判断拟议的修复是消除了根本原因,还是只掩盖了报告中的表象,并编写能证明这一点的测试。
结业考核
审计一个多租户 Web 应用
在限定时间内审计一个为课程开发的应用,提供源代码和可运行的副本。您需要撰写一份专业的漏洞发现报告,并在最后一次课上与我一起复盘。
考核标准
- 入口点和信任边界的覆盖图
- 附证据和复现步骤的已确认发现
- 每个发现的根本原因判断正确
- 产品负责人能够理解的风险等级论证
- 附带测试、能消除根因的修复
- 误报少,并与待确认问题清楚区分
这门课程的不同之处
一位学员,一位讲师
每次课程都由我亲自授课,学习计划跟随您的进度,而不是固定的课表。
真实案例,而不是玩具代码
您审计的是已公开漏洞的代码,其中有些由我亲自分析或修复,另外还有为课程准备的应用。
方法先于工具
扫描器只在其擅长的方面使用。您将学会判断它们的结果,并发现它们无法建模的问题。
使用的工具
标准与参考资料
- OWASP Code Review Guide
- OWASP Application Security Verification Standard (ASVS)
- OWASP Cheat Sheet Series
- CWE Top 25 Most Dangerous Software Weaknesses
- NIST SP 800-218, Secure Software Development Framework
现在就能阅读的案例
- fast-jwt 算法混淆漏洞:第三次尝试才真正修复
- CVE-2026-21589:藏在 :: 背后的 Atlassian 文件读取漏洞
- CVE-2024-26855:缺失的属性如何演变为空指针解引用
- React2Shell 事件之后:每一次服务端组件审计都需要的三道安全边界
关于本课程的问题
需要掌握哪些编程语言?
实验使用 TypeScript/Node.js、PHP 和 Java,原生代码案例使用 C。您需要能熟练阅读其中一种;审计方法可以在不同语言之间迁移,我们也会专门练习这一点。
需要多长时间?
取决于您的起点水平以及课程之间可投入的时间。我们会在初始评估后制定计划,并根据您的进展随时调整。
这和备考 OSWE 一样吗?
不一样。OSWE 通过考试认证白盒漏洞利用能力。本课程在个人指导下教授审计方法、根因分析和修复质量。两者有很多技能重叠,本课程也是进行任何白盒工作的良好准备。
需要购买商业扫描器吗?
不需要。课程中的所有内容都使用免费的开源工具。
什么时候可以开始?
发一条简短的消息,说明您的水平和目标。我会在三天内回复,安排一次免费的 20 分钟水平评估通话,之后再商定您的学习计划和开课日期。
费用是多少?
每门课程 1,490 美元,包含约 10 次每次 90 分钟的一对一课程,以及实验、练习批改、结业考核和证书。两门课程合计 2,690 美元,单次 90 分钟课程 150 美元。
一对一培训是怎么进行的?
我们在线上进行直播课程。两次课程之间,您完成我根据您的水平布置的实验和练习,下次课上我们一起复盘结果。进度跟随您的学习情况,而不是固定的课表。
课程使用什么语言?
国际学员以英语授课。母语为阿拉伯语的学员可以选择阿拉伯语或英语;阿拉伯语课程会保留您在工具、报告和招聘信息中会看到的英文术语。
有线下课程吗?
没有。所有课程、实验、练习和反馈都在线上进行。
能拿到证书吗?
通过结业考核后,您将获得一份结业证书。证书由我本人颁发,并不是 OSWE 这类行业认证。雇主真正可以查看的,是您的工作成果本身:您的最终报告。
实操练习合法吗?
合法。所有实操内容都使用我为课程准备的应用,以及已发布安全公告的特定版本开源项目,并且都运行在您自己的电脑上。您永远不会去测试不属于您、或未获书面授权的系统。
如果我需要更多时间怎么办?
如果需要比计划更多的课时,每增加一次课程收费 150 美元,并会事先与您商定。
下一步
接下来学习结合源代码的 Web 与 API 渗透测试课程。