视频学习笔记
← 返回未分类
YouTube🗂️ 未分类00:16:232026-08-18观看原视频 ↗

I Made an AI Agent That Reverses CVEs While I Sleep

整体摘要

这期视频完整演示了如何搭建一个"睡觉时自动逆向 CVE"的 AI Agent。核心方法论是 Reversing CVEs:每天都有数百个 CVE 带着公开补丁披露,能读懂补丁就能理解漏洞、写出可用 PoC 并转化为真实漏洞发现。系统的架构是"Claude Code 当大脑、Zapier MCP 当双手":Zapier MCP 挂载 GitHub 与 Google Sheets 两个应用负责写仓库和备份;数据源用 Patchstack 漏洞数据库,过滤出 CVSS ≥ 6 的 WordPress 插件高危漏洞;项目里的 Claude.md 充当"家规"规定完整工作流(拉数 → 过滤 → 跳过 admin-only → 按年份/CVE ID 归档 → 推送 GitHub),reversing skill 则规定逆向方法(映射 wordpress.org、下载漏洞版与修复版做 diff、定位 source/sink、产出含 HTTP 方法/endpoint/权限/参数/curl 的 PoC)与交付物(readme、report.md、poc.md、nuclei 模板)。一句 "get today's CVEs and reverse them" 即可批量触发,7 分钟逆向出一批 CVE(含未认证 SSRF 的完整报告与 nuclei.yaml),再挂上 cron 就是每天自动产出的"CVE 工厂"。彩蛋环节用 Agent 自己写的 PoC 在实验环境实测成功,全链路闭环。整套方案免费、开源,且明确限定为本地实验用途而非批量利用工具。

01

开场与核心概念——什么是 Reversing CVEs(00:00 - 01:46)

00:00 - 01:46

提出"逆向 CVE"这一核心方法论——每天有数百个 CVE 带着公开补丁披露,能读懂补丁就能理解漏洞、写出可用 PoC 并转化为真实漏洞发现。作者据此构建了一个全自动 AI Agent,并说明为什么选 WordPress 作为训练场。

关键时间节点
时间类型说明
00:19核心概念Reversing CVEs:读补丁 → 理解 bug → 写出可用的 PoC → 变成真实 finding
00:26重点结论不必从零找漏洞:每天都有数百个 CVE 披露,补丁就公开摆在那里
00:29核心概念AI Agent 全自动流水线:每天早晨拉取新的重要 WordPress CVE → 逆向工程 → 生成 POC 和 nuclei 模板 → 睡觉时把完整 write-up 提交到 GitHub 仓库
00:42核心概念架构分工:Zapier MCP 是"胶水/双手",Claude Code 是"大脑"
00:52关键点WordPress 三大优势:开源(插件补丁的前后对比就在 diff 里)、漏洞量惊人(永远不缺练习素材)、进攻更大闭源目标前的完美训练场
01:13重点结论整套东西(CVE 逆向 skill、自动化、完整 setup)全部免费,并在作者的 GitHub 开源
01:30重点结论快速总览:Claude Code 负责查找和逆向 CVE;Zapier MCP 负责连接 GitHub、写表格、提 issue 等具体动作——几乎不用写代码
详细内容

视频开门见山给出一个大多数人入门漏洞众测(bug bounty)时没意识到的事实:你不需要从零开始找漏洞。每天都有数百个 CVE 被披露,而且补丁(patch)就公开摆在那里。只要你能读懂补丁,你就能理解对应的 bug,写出能跑的 PoC(概念验证),并把它变成一个真实可提交的漏洞发现——这套做法叫"逆向 CVE(reversing CVEs)",比听上去容易得多。

作者构建的 Agent 完整自动化了这条链路:每天早晨自动拉取新披露的高危 WordPress CVE,做逆向工程,自动生成 PoC 和 nuclei 漏洞扫描模板,然后在作者睡觉时把完整分析报告提交到 GitHub 仓库。整个系统的粘合剂是 Zapier MCP,大脑是 Claude Code。

选 WordPress 作为切入点的理由:它是互联网上最容易起步的地方——代码开源,插件修补 bug 时前后代码对比(diff)直接可见;漏洞数量惊人,永远不缺练习对象;是进攻更大闭源目标前的完美训练场。作者强调,视频里展示的一切(CVE 逆向 skill、自动化流程、整套 setup)都是免费的,并且会在他的 GitHub 上开源,观众看完视频就能自己克隆运行。

02

搭建 Zapier MCP"双手"(01:46 - 05:17)

01:46 - 05:17

完整演示 Zapier MCP 的配置流程:在 mcp.zapier.com 创建 MCP server,挂载 GitHub 与 Google Sheets 两个应用并授权相应操作,然后把 MCP 接入 Claude Code,最后用一个"创建 README"的小任务验证连通性。

关键时间节点
时间类型说明
01:47关键步骤第一步:登录 mcp.zapier.com,点击 "new MCP server",客户端选择 Claude Code
02:08提示除 Claude Code 外也支持 Cursor、ChatGPT、Gemini CLI 等客户端
02:18注意新建的 MCP server 默认没有任何应用,需要手动 Add apps
02:24关键步骤Add apps 可挂载的能力:邮件、Notion、Slack、Discord 等
02:42关键步骤本视频只挂两个应用,第一个是 GitHub,授权:创建评论、创建/更新文件、创建 gist、创建 issue、创建 PR
02:57关键步骤第二个是 Google Sheets,用于把所有成果备份到表格(两份存储非必需;作者偏好双份是因为表格比 GitHub 更好搜索)
03:17关键步骤接入 Claude Code:复制页面给出的命令 → 到终端执行 → 自动写入 cloud.json 配置
03:38关键步骤运行 claude mcp → 选择 Zapier → 确认认证 → 浏览器自动打开 → 点击 Allow 完成授权
04:09示例连通性验证:对 Claude Code 说 "using Zapier MCP, create a readme for this repository that says this will be my CVE repository for all my reverse engineered CVEs from WordPress"
04:39注意中途遇到 Anthropic 账号登录失效(可能是更新导致),重新登录后重试即可
05:05重点结论返回 "Call Zapier. Done. Readme created.",README 成功出现在仓库里,MCP 权限验证通过
详细内容

这一章是"双手"部分的搭建。流程:登录 mcp.zapier.com 后点击 "new MCP server";由于要接 Claude Code,客户端点击 Claude Code(也提供 Cursor、ChatGPT、Gemini CLI 等选项)。

刚创建好的 MCP server 里没有任何应用(作者为避免泄露邮箱等信息提前建好了自己的),需要点 "add apps" 挂载想让 MCP server 操控的能力:发邮件、写 Notion、Slack、Discord 都可以。本项目只用两个:

  1. GitHub——授权创建评论、创建/更新文件、创建 gist、创建 issue、创建 PR,由它负责把逆向出的 CVE 写进仓库做归档;
  2. Google Sheets——把所有内容再备份到表格。作者强调两者不必都做,他偏好双份只是因为表格检索比 GitHub 方便。

接入 Claude Code:复制 Zapier 给出的命令,到终端里执行,配置会自动写入 cloud.json。然后运行 claude mcp,选择 Zapier,确认认证,浏览器自动打开授权页,点 Allow,几秒后显示 authentication successful。

验证环节:作者让 Claude Code 用 Zapier MCP 给仓库创建一个写着"这是我所有 WordPress 逆向 CVE 仓库"的 README。中途因 Anthropic 登录失效重登了一次,重试后返回 "Call Zapier. Done. Readme created.",刷新仓库即可看到——确认 Claude Code 确实能通过 MCP 操作 GitHub 后,才继续往下搭。

03

漏洞数据源——Patchstack 漏洞库与过滤条件(05:17 - 06:48)

05:17 - 06:48

确定 CVE 输入源为 Patchstack 漏洞数据库,并设置三个过滤条件(WordPress、插件、CVSS ≥ 6~7),同时通过 WP Meta SEO 条目展示单个 CVE 条目的信息结构,指出这类条目没有现成 POC——这正是本项目要自动补上的东西。

关键时间节点
时间类型说明
05:17关键步骤一切就绪后需要真正的漏洞清单:访问 patchstack.com,滚动到页面底部的 vulnerability database
05:35关键步骤过滤条件 1:软件类型只选 WordPress(Joomla、Drupal 也能做,本视频保持简单)
05:46关键步骤过滤条件 2:组件类型选 plugin(不关心 themes)
05:52关键步骤过滤条件 3:CVSS 评分高于 7 或 6,得到高危到严重级别的漏洞列表
06:07重点结论最终输入 = Patchstack 库中严重度 6-10 的 WordPress 插件漏洞
06:16示例打开单个条目示例(WP Meta SEO):显示 medium 优先级、受影响版本、无官方补丁,可查看软件全部数据甚至认领所有权
06:36注意这类条目没有现成的真实 POC——正是本视频要自动化解决的部分
06:40重点结论视频目标:全自动地把 CVE 逆向成可用 POC,甚至 nuclei 模板
详细内容

Agent 的"大脑"和"双手"就绪后,需要喂给它真实的漏洞清单。作者使用 Patchstack 漏洞数据库:打开 patchstack.com 拉到页面底部即可找到。需要做几个过滤调整:

  • 只看 WordPress(Joomla、Drupal 等其他 CMS 同样可行,留待扩展);
  • 组件类型限定 plugin(不关心主题);
  • CVSS 严重度设为高于 7 或 6,筛出的就是高危到严重(high to critical)的插件漏洞。

作者点开一个条目(WP Meta SEO 插件)演示条目结构:能看到优先级(medium)、受影响版本、尚无官方补丁等字段,还能查看软件完整信息、在 Patchstack 上认领所有权。但关键问题是:这些条目没有现成的真实 POC。所以本项目的期望就是:建立一条自动化通道,把每天新出的 CVE 自动逆向成可工作的 POC,甚至附上 nuclei 模板。

04

Claude.md 家规与 Reversing Skill(06:48 - 09:42)

06:48 - 09:42

拆解项目的两个核心配置文件:Claude.md(家规,规定取数、过滤、跳过 admin-only、按年份/CVE ID 归档、推送 GitHub 的完整流程)和 skills/reversing/skill.md(逆向技能,含允许工具、版本对比、POC 要素、交付物清单),并给出最重要的合规边界——只做本地实验,不做一键批量利用脚本。

关键时间节点
时间类型说明
06:53核心概念Claude.md = "家规"(house rules):告诉它做什么、怎么运作、去哪里取数
07:06关键步骤家规规定的工作流:从数据库拉取条目 → 按 CVSS 过滤 → 跳过 admin-only → 逆向 → 按年份 + CVE ID 建目录归档 → 推送到 GitHub → 打标签
07:12警告跳过 admin-only 漏洞的原因:众测项目里不会拿到管理员权限
07:43核心概念skill 与 command 是一回事:/CVE 命令即可调用 reversing skill
07:56关键步骤skills/reversing/skill.md 的内容结构:name、description、要创建的 nuclei 模板、查看版本、做 diff、识别 bug、写仓库交付物
08:13核心概念allowed tools:bash、web fetch、read、write
08:21核心概念skill 核心逻辑:看漏洞、看补丁、看改了什么,据此构建可用的 POC
08:29警告合规边界:仅面向本地实验(local lab),不是一键大规模利用脚本(not turn-key mass exploitation scripts)
08:34关键步骤软件定位:从插件条目的 affected software 映射到 wordpress.org
08:45关键步骤版本对拍:下载漏洞版本 vs 修复版本(示例:漏洞版 3.15.05 / 修复版 3.15.06),对两者做 diff
09:07重点结论POC 必备要素:HTTP 方法、endpoint、所需权限、参数,另附一条可直接用的 curl 命令
09:20重点结论仓库交付物四件套:readme、report.md、poc.md、nuclei 模板
详细内容

进入"有趣的部分":一切如何靠 Claude + Zapier + Claude skills 串起来。项目文件夹里有两个关键文件:

Claude.md(家规):告诉 Claude 该做什么、如何工作、去哪里取数。具体规则包括:从 Patchstack 数据库拉取条目;按之前设定的 CVSS 过滤;跳过所有 admin-only 漏洞(因为众测项目不会有管理员权限);逆向后按"年份 + CVE ID"建文件夹归档;推送到 GitHub;再附带一些标签和规则。

reversing skill(skill.md):同时提供了一个等价的 /CVE 命令(command 与 skill 本质相同)。这个文件相当大,结构上包含:name、description、要创建的 nuclei 模板、查看版本、做 diff、识别 bug、写仓库交付物,以及 allowed tools——bash、web fetch、read、write。核心逻辑一句话:看漏洞、看补丁、看补丁改了什么,然后基于变化构建可工作的 POC。作者在 skill 里写明合规边界:这是给本地实验环境用的,不是一键式大规模利用脚本。

执行时的软件定位流程:从插件条目里的 affected software 信息映射到 wordpress.org,从 wordpress.org 下载"漏洞版本"和"修复版本"两个版本(例如漏洞在 3.15.05、修复于 3.15.06),把两个版本都下下来做 diff,据此产出 PoC。

POC 的质量要求:必须包含 HTTP 方法、endpoint、所需权限、参数,作者还额外要求附一条现成的 curl 命令。最终交付到仓库时包含:readme、report.md、poc.md 和 nuclei 模板,全部信息都写进这些文件,并遵循 skill 里的规则。

05

实例走查——一个被自动逆向的 SQL 注入 CVE(09:42 - 11:24)

09:42 - 11:24

打开一个之前由 Claude 自动完成的真实产出,逐文件讲解:readme 里写明漏洞代码位置与根因(wffnadmin.php 中 get_funnels 参数的 SQL 注入,仅转义引号导致无引号 SQL 上下文不安全),report.md 包含摘要/复现步骤/影响,poc.md 给出带 WP nonce 与登录 cookie 的 sleep 5 时间盲注 PoC。

关键时间节点
时间类型说明
09:44示例打开一个之前让 Claude 完成的逆向成果,changes 视图可直接看改动
10:02示例readme 中包含更完整的细节:看过 diff 后说明改了什么
10:04核心概念漏洞定位:admin class 文件 wffnadmin.php 中的 get_funnels 参数(SQL 注入点)
10:14核心概念根因分析:代码用多个攻击者可控的值拼接查询,但只做了引号转义,在无引号的 SQL 上下文里并不安全
10:24关键步骤方法论:看修复代码即可确认 bug;定位 source 与 sink——位于 ORDER BY 的 meta 请求参数(admin 端点)
10:32示例报告会给出置信度(confidence),并指引"想报告请看 report.md"
10:41示例report.md 内容:摘要、CVE 编号、受影响组件、复现步骤(搭建本地 WordPress、下载安装、观察响应)、影响说明
10:57示例poc.md:给出它实际使用的精确 POC——让服务器 sleep 5 秒作为时间盲注证明;需要 WP nonce 头 + admin REST token + 已登录 cookie;并附基线请求
详细内容

作者展示了一个之前让 Claude 独立完成的逆向成果来对照第四章的规则。在仓库的 changes 视图里可以直接看到改动,而 readme 里保留了更完整的分析细节:看过 diff 后,它指出漏洞代码位于 admin class 的 wffnadmin.php 文件中的 get_funnels 参数——该处用多个攻击者可控的值构建查询,但只对引号做了转义,值在无引号的 SQL 上下文中并不安全(典型的 SQL 注入根因表述)。

报告还会对照修复代码确认 bug 的存在,并定位 source(入口)和 sink(注入点)在 ORDER BY 的 meta 请求参数上(admin 端点),同时标注自己的置信度,提示"原始补丁的 diff 可以自己看,正式报告在 report.md"。

report.md 里包含:摘要、对应 CVE、受影响组件、复现步骤(搭建本地 WordPress、下载安装该插件、发出请求并观察响应)以及影响说明。poc.md 则给出它实际使用的精确 PoC:通过让服务器 sleep 5 秒作为时间盲注证明;请求需要携带 WP nonce 头与 admin REST token,以及已登录的 cookie,并附上基线请求供对照。至此理论上整套流程已经完整跑通过一次。

06

批量运行——"get today's CVEs and reverse them"(11:24 - 13:35)

11:24 - 13:35

把单次成功升级为规模化:在工作目录对 Claude Code 说一句 "get today's CVEs and reverse them",它会加载工具、抓取 Patchstack 数据库并派出多个子 Agent 并行逆向;约 7 分钟后 2026 目录已产出一批 CVE,包含未认证 SSRF 报告、可复现 POC 和 nuclei.yaml 模板。

关键时间节点
时间类型说明
11:26重点结论单跑成功一次还不够,需要用 Claude Code 做"批量(in mass)"
11:32关键步骤两种触发方式:输入 /CVE,或在项目目录直接说 "get today's CVEs and reverse them"
11:48注意批处理耗时较长,需要等待
11:54关键步骤运行过程:加载工具 → 检索数据库 → 按要求抓取 Patchstack 数据
12:05示例运行约 5-6 分钟后,已针对一批不同 CVE 启动了多个 agent 并行处理
12:12关键步骤查看产出:打开本地 2026 年份目录,已有一批 CVE 文件夹
12:25示例成果示例:未认证 SSRF(可导致响应刷新/内网访问、通用数据凭据窃取、内网 post host 等),并已生成 POC(plugins link preview 中用该文件与 URL 即可取回内容)
12:53示例nuclei.yaml 已生成:描述完善,match 逻辑为发出该请求 → 匹配 HTTP 字样确认 → 再找 atproxy → curl error
13:13重点结论作者自评:匹配逻辑未必最优,但这是 v1 版本;运行仅 7 分钟就逆向出一批 CVE,效果已算不错
详细内容

理论验证通过后,要让它规模化。做法非常简洁:在项目工作目录下对 Claude Code 直接下达自然语言指令——"get today's CVEs and reverse them"(或用等价的 /CVE 命令)。

批处理会花一段时间。能看到它先加载工具、检索数据库,然后按要求抓取 Patchstack 数据。运行约五六分钟后,它已经针对一批不同的 CVE 启动了多个 agent 并行处理。打开本地的 2026 目录检查,已经躺着一排 CVE 文件夹。

抽查其中一个 report:识别出的是未认证 SSRF,影响包括内网访问、通用数据凭据窃取、内网 post host 等,且全部确认真实可利用;POC 也已生成——在 plugins link preview 里用对应文件加 URL 发请求即可取回内容。再看 nuclei.yaml:也已自动生成,描述写得不错,匹配逻辑是先发请求、在响应里找 HTTP 字样确认存在,再匹配 atproxy 和 curl error。作者坦承匹配规则不一定是最优解,但作为 v1 版本,运行 7 分钟就有这样的产出已经"not bad"。

07

定时化、成果归档与扩展思路(13:35 - 15:37)

13:35 - 15:37

把批处理挂进 cron 定时任务即可拥有每天自动产出 POC 的"CVE 工厂";GitHub 仓库自动更新出带作者、Patchstack 链接、置信度、摘要的完整条目;作者建议从 WordPress 这个最小 CVE 池起步再扩展,并展望用它监控任意 GitHub 项目的补丁、配合 Discord webhook 做新漏洞告警。

关键时间节点
时间类型说明
13:36关键步骤把整个流程挂进 cron job / 计划任务(scheduled task),按需每天定时跑
13:46重点结论效果 = 拥有自己的"CVE 工厂",持续产出 POC 并不断壮大数据库、推送 GitHub
13:53示例刷新 GitHub 仓库:已自动出现一批新文件夹,readme 含作者、Patchstack 链接、置信度、摘要——漏洞利用数据库所需的要素齐备
14:21注意这些产出对众测是否有用是另一回事,有时确实有帮助;本质是先盯住最小的 CVE 池(WordPress),再扩展到其他平台
14:37关键点Patchstack 平台本身也支持 Drupal 等其他 CMS,可按同思路扩展
14:44扩展思路已掌握逆向能力的人可用这套系统监控任意 GitHub 项目的补丁 → 自动逆向 → 通过 Discord webhook 在新漏洞出现时即时告警
15:00重点结论发挥空间很大,"想想用它都能做什么";正片至此结束
详细内容

批处理验证可行后,下一步是无人值守化:把这条流水线挂进 cron 定时任务(或系统计划任务),让它每天自动运行——相当于拥有一座自己的"CVE 工厂",持续产出 PoC,数据库不断增长,并持续推送 GitHub。

刷新 GitHub 仓库可以看到它刚更新过:多出一批文件夹,每个条目的 readme 都带作者、Patchstack 链接、置信度、摘要——作为个人漏洞利用数据库的要素已经齐备。

作者对价值的定位很务实:这些产出对众测是否直接有用是另一个问题,有时确实很有帮助;但本质上这套系统先盯住最小的 CVE 池(WordPress 插件),之后可以像前面演示的那样扩展到其他平台(Patchstack 也支持 Drupal 等)。更大的想象空间在于:如果你本来就懂漏洞逆向,可以把这套系统用来监控一批 GitHub 项目的补丁提交,自动完成逆向,再接一个 Discord webhook——每当有新漏洞/新利用出现就立刻通知你。

08

彩蛋——用生成的 POC 实测验证(15:37 - 16:23)

15:37 - 16:23

留给看到最后的观众:拿 Agent 自己写的 POC 在实验环境实测——初次因端口未开放失败,改用 80 端口后成功命中 CVE lab(源 IP 可见),验证 POC 与 nuclei 模板真实可用,全片闭环。

关键时间节点
时间类型说明
15:37关键步骤用 Agent 生成的 POC(poc.md)实测验证漏洞
15:51示例第一次尝试失败:提示端口未开放,改用 80 端口重试
15:56示例成功:页面显示 CVE lab,来源为该 IP 地址——POC 生效
16:03注意该目标取不到 metadata,但可以对这里的端口和其他 IP 继续扫描
16:12重点结论拿到了可工作的 PoC,剩下只需跑一下 nuclei 模板确认
16:15重点结论"It worked."——第一个成果在测试实例上验证成功,整条链路闭环
详细内容

正片结束后的彩蛋环节是整个项目的最后一块拼图——实测。作者直接使用 Agent 写好的 poc.md 在实验环境里验证:第一次运行提示端口没有打开,于是把目标换成 80 端口重试;这次页面成功显示出 CVE lab,来源正是发起请求的 IP 地址,说明 SSRF PoC 真实生效。虽然这个目标拿不到 metadata,但对环境里的端口和其他 IP 继续扫描完全可行。

结论:"There you have it. It worked."——第一个自动逆向的漏洞在测试实例上确认成功,从 CVE 拉取、补丁 diff、PoC 生成到 nuclei 模板的整条自动化链路就此闭环。

整体总结

这期视频的价值在于把"逆向 CVE"从手工技巧变成了一条可复用的自动化流水线,其工程思路可以概括为四层:

  1. 方法论层:漏洞挖掘不必从零开始。公开披露的 CVE 自带补丁,补丁 diff 就是漏洞的"答案之书"——读懂改动即理解 bug,复现改动前的行为即得到 PoC。WordPress 插件生态(开源 + 高产出 + wordpress.org 可下载任意历史版本)是这套方法最理想的训练场。
  2. 架构层:Claude Code 充当大脑(分析、逆向、写 PoC),Zapier MCP 充当双手(操作 GitHub 写仓库、写 Google Sheets 备份),两者通过 mcp.zapier.com 创建的 MCP server 打通,几乎不需要写代码。
  3. 规则层:行为约束全部沉淀在两个文件里——Claude.md 定义业务流程(Patchstack 取数、CVSS ≥ 6 的 WordPress 插件、跳过 admin-only、按年份/CVE ID 归档、推送 GitHub),reversing skill 定义技术流程(映射 wordpress.org → 下载漏洞版/修复版 → diff → 定位 source/sink → 产出含 HTTP 方法/endpoint/权限/参数/curl 的 PoC → 交付 readme/report.md/poc.md/nuclei 模板)。这体现了 Agent 工程的关键实践:把"怎么做"固化成规则和技能,而不是每次现写提示词。
  4. 运营层:一句 "get today's CVEs and reverse them" 触发多 Agent 并行批量逆向(7 分钟产出一批含 SSRF 在内的完整成果),挂上 cron 即成为每天自动运行的"CVE 工厂"。

需要保留的两点清醒认识:其一,作者明确划定了合规边界——这套产出仅用于本地实验环境,不是一键批量利用工具;其二,产出的 PoC/nuclei 模板对真实众测的价值因目标而异,nuclei 匹配逻辑(v1)也未必最优。扩展方向包括接入 Drupal 等更多 CMS 数据源、监控任意 GitHub 项目补丁、以及用 Discord webhook 做新漏洞即时告警。