视频学习笔记
← 返回Bug Bounty
YouTube🐞 Bug Bounty00:37:312026-09-16观看原视频 ↗

Rez0 的惊艳缓存漏洞 & 本地 AI 对决补贴 Token(Ep.191)

整体摘要

本期是 CTBB(Critical Thinking Bug Bounty,"批判性思维")播客第 191 期,主持人为 Justin 与 Rez0(Joseph Thacker)。核心内容有三块:其一,Rez0 分享被 Justin 誉为"年度最爱"的漏洞——针对带 AI 聊天机器人的高安全产品,组合运用提示注入(auto-invoke 参数)、CSP 绕过、服务器端缓存命中/未命中侧信道(XS-Leak)与 tab-nabbing,实现一键点击、逐字符窃取用户密钥的完整攻击链;其二,两人辩论"本地 AI vs 补贴 token":Rez0 预订了 256GB M5 Ultra Mac Studio,系统论述本地模型的四大用途(冗余备份、省 token 子代理、越狱助手、敏感数据不出域),并给出"聪明模型编排 + 本地傻瓜代理"的最优用法;其三,穿插 Justin 两周约 50 个 bug 的 hackbot 战报、herder.dev 工具推荐、3D 打印 lithophane 结婚礼物、平均分配赏金池的 live-hack 新玩法等话题。

01

开场闲聊与赞助商(YesWeHack 的 Codex 漏洞赏金博客)

00:00 - 02:35

节目以一段关于 "Ubuntu" 发音的内部梗冷开场(该梗在 30:35 处再次出现)。随后进入本周赞助商环节:YesWeHack 发布了一篇如何用 OpenAI Codex 做漏洞赏金的博客,兼具课程式引导与大量实测数据。

关键时间节点
时间类型说明
00:42节目开始主持人开场(冷开场为 Ubuntu 发音之争的预剪片段)
00:46赞助/资源YesWeHack 发布"用 Codex 做漏洞赏金"博客文章,课程式入门但内容详实、数据丰富
01:03核心问题博客核心问题:Codex 能否做到端到端的漏洞修复(而不只是标记可疑代码);主持人经验:绝对可以
01:14案例讨论安全研究员 Hash Kitten 的 "WordPress to Shell" 利用过程(借助 GPT 系模型找到)
01:29工作流推荐的 Codex 赏金工作目录结构:scope(范围标记)、recon(侦察)、requests(请求)、scripts(脚本)、source(源码)、findings(发现)
01:39关键步骤博客还讲解:提高效率的配置变更、黑盒测试设置、集成 Playwright、Burp,也可用 Caido(其云技能在 Codex 中好用)
02:00核心概念Hash Kitten 将 OpenAI 用于解决未解数学问题(Cycle Double Cover Conjecture,环双覆盖猜想)的提示词改编为 "WP to Shell" 攻击提示词;主持人用同样脚本做了抽象化,使其适用于任何黑盒赏金/渗透场景
详细内容
  • 上期 Rez0 麦克风出问题,本期已修复(02:35 提及)。
  • 赞助要点:YesWeHack 博客把"AI 编码代理做端到端漏洞修复"的问题用大量数据和一步步设置指导讲透,值得一看。

02

Rez0 的"年度最爱"漏洞——AI 聊天机器人 + 提示注入 + 缓存 XS-Leak

02:35 - 11:45

Rez0 分享了一个被 Justin 称为"今年最喜欢的 bug"的完整攻击链:目标是一个安全强度很高的带 AI 聊天机器人的产品。链条包括:URL 参数自动调用(auto-invoke)提示注入 → Markdown 图片渲染外泄受限(CSP 只信任 CDN 域)→ 利用"用户头像被缓存"的特性做服务器端缓存命中/未命中侧信道 → 按索引逐字符外泄密钥 → 用 Cloudflare Turnstile 一键验证码 + tab-nabbing 实现干净的一键 POC。另附一个更简单的第二种利用路径。

关键时间节点
时间类型说明
02:49背景距上次分享精彩漏洞已过多期;Justin 评价:这是他今年最喜欢的 bug
03:08目标介绍目标是安全系数极高的产品,带有 AI 聊天机器人;Rez0 用 Codex(免费版小模型,听话)辅助挖掘
03:26关键步骤经典注入思路:注入 ?q= 查询参数;Codex 很快在 JS 中定位到两个参数:查询参数 + auto-submit/auto-invoke(自动提交/自动调用)参数
03:53攻击面应用可访问账户内大量敏感对象数据,存在大量不可信数据 → 只差数据外泄通道
04:05挫折手动让小模型"渲染这张图片"失败;把大份 Markdown 图片载荷速查表粘给 Codex,约 10 分钟找到渲染点
04:29核心概念外泄本质上是一个 CSP 绕过:图片只能从受信任的 CDN 域加载;但(此漏洞中)无法控制该 CDN 域上的内容
04:53转折告诉 Codex"链条其他环节都齐了,肯定有办法外泄";Codex 发现疯狂的东西:每个用户的头像(profile picture)是自动生成且被缓存的
05:14核心概念缓存侧信道:若受害者的自动调用代理(agent)命中过某个头像,再次请求时得到"缓存命中"而非"缓存未命中"——命中/未命中即 1bit 可观测信号
05:27关键步骤构建大型脚本框架:批量尝试以特定字节结尾的头像路径;自动调用提示接近可执行操作的极限(需指示 agent 向 CDN 路径发大量 Markdown 图片请求)
05:58重点结论最终载荷 = 可点击的 auto-invoke 提示(或 CSRF):让代理"去取受害者存储对象中的秘密,然后生成一堆 Markdown 图片路径,路径末字节 = 该秘密第 N 个字符的索引"
06:28重点结论服务端脚本尝试数百/数千个带结尾字节的头像,按索引关联结果;每个字符只需一次缓存命中 → 通过缓存逐字符泄露完整秘密(XS-Leak / 服务器端缓存侧信道)
06:58注意事项攻击过程受害者会"实时看着自己在屏幕上被攻击",需要隐藏攻击行为
07:20关键步骤隐藏方案:tab-nabbing(标签页偷换)效果很好;但 Chrome 中首次设置无法用 Tab 键自动重定向,至少需要两次点击(进入攻击者页面一次、弹出窗口一次);CTBB Discord 有人研究过免点击的怪招,但通常仍需一次点击
08:04方法论灵感来自东京 Google LiveHack 活动的教诲:必须交付最干净、最真实的 POC
08:14重点结论一键 POC:受害者的"点击"选在 Cloudflare Turnstile 一键验证码上——页面看起来干净自然,点击后原标签页立即重定向到 auto-invoke 页面(提示注入运行,通过 Markdown 图片渲染提取应用内存储的密钥),同时新开一个正常标签页(博客内容)作掩护
09:16重点结论服务器在后台查询缓存确定命中结果;用户只需轻轻一点,秘密就泄露了;UI 呈现"红红红绿红红",变绿即该字符被恢复并显示在右侧栏,最终得到完整秘密
09:23重点结论Justin 总结该漏洞三大美学:前端美感 + AI 提示注入(prompt injection)+ 通过服务器端缓存实现的 XS-Leak
10:17示例说明演示节奏:弹出后启动计时器,平均约 2 分钟逐字符暴力破解出整个密钥,只需持续检查缓存索引
10:57延伸第二种方法:类似"用 Google 脚本窃取数据"的 CSP 绕过(script gadget 思路)——在自己可访问的根域上设置请求处理器(SSRF 不可行);Rez0 用该方法无需花哨操作直接把秘密经 Markdown 图片外泄到自己的服务器,并作为第二个漏洞报告提交(厂方未必接受)
详细内容
  • 漏洞链条总结(复现思路):
    1. 寻找 ?q= + auto-invoke 类参数(AI 应用常见注入入口)。
    2. 应用有 CSP:图片仅限可信 CDN 域 → 常规 Markdown 图片外泄失效。
    3. 关键发现:头像按用户自动生成并被缓存 → 受害者代理请求过的头像路径在缓存中留痕。
    4. 让被注入的 agent 生成"末字节 = 秘密字符索引"的头像/CDN 图片路径。
    5. 攻击者侧批量探测缓存命中,按索引拼出秘密(每字符一次命中)。
    6. 交付层:Cloudflare Turnstile 一键点击 + tab-nabbing 隐藏真实跳转,POC 干净可信。
  • 教学点:XS-Leak 不只存在于浏览器端;服务器端缓存命中差异同样构成侧信道。AI 聊天机器人把"注入"和"代理能力"送上门后,缓存侧信道就成了完美外泄通道。

03

Justin 的 hackbot 战报——两周约 50 个 bug 与 AI 报告分诊难题

11:45 - 14:10

Justin 汇报在 Rez0 激励下"扩大规模"的成果:hackbot(黑客机器人)持续运转,约两周提交了约 50 个 bug,项目方响应快、优先级高、付款迅速。厂商坦言"AI 报告数量庞大导致分诊困难",Justin 的批量高质量 AI 报告反而成为"本周完美范例"。

关键时间节点
时间类型说明
11:49战报Justin 的清单里有很多 bug,多数"无聊"但量大
12:00数据hackbot 疯狂运行,约两周提交约 50 个 bug
12:23重点结论漏洞全部高优先级;该项目响应快、付款快
12:43行业观察该项目对 AI 非常友好;厂商直言"由于 AI 报告数量庞大,现在分诊(triage)变得非常困难",并笑称 Justin 本周的表现就是"完美例子"
13:19数据受 Rez0"扩大规模"挑战以来,Justin 已能稳定保持每天捕获 3-5 个 bug
13:48投入Justin 现在毫不犹豫每月花费数千美元用于计算、服务器和 AI token;"先花钱才能赚钱"在赏金行业正变得越来越普遍
04

本地 AI vs 补贴 token——硬件投资(Mac Studio / DGX Spark / ASUS Spark)

14:10 - 17:00

Justin 提出本期核心议题:要不要买硬件自建本地 AI 算力。Rez0 已预订 256GB M5 Ultra Mac Studio(约 1 万美元,11 月发货);对比 NVIDIA DGX Spark 与更便宜的 ASUS 版 Spark(同芯片、1TB 盘省 1000 美元);圈内朋友纷纷入坑(Turbo 1 台、Ian Carroll 4 台)。

关键时间节点
时间类型说明
14:11议题引入重要问题:人们消费和投资的一种方式是购买(AI)硬件
14:22背景显卡/硬件半年内价格大涨,朋友们很伤心
14:25关键步骤Rez0 预订 256GB Mac Studio(M5 Ultra,起价约 9 千-1 万美元),11 月才到货;信用卡发货后才扣款
15:14对比与 NVIDIA DGX Spark 对比:两台 ASUS(华硕)版 Spark 约 $3,999,单台约 $4K
15:34省钱方案ASUS 主板用完全相同的 Spark 芯片与内部组件,只是磁盘小(1TB vs 4TB),可省约 1000 美元;想要 256GB 统一内存跑 AI 模型又想省成本,可买两台 ASUS Spark
16:07圈内动态Turbo 买了一台 Spark;朋友 Ian Carroll(伊恩·卡罗尔)买了四台
16:29议程Justin:想列举使用场景,给听众"该不该买硬件"的实用建议
05

本地 AI 的定位与用法(冗余、成本、子代理、越狱、隐私)

17:00 - 25:25

Rez0 系统论述买硬件/本地 AI 的理由:(1) 补贴 token 太划算能买就买,但本周 hackbot 的 bug 让 Codex 订阅额度几乎耗尽 + Claude 宕机 2 小时,让他意识到"没有 AI 无法工作",本地 AI 是冗余备份与对冲(防补贴取消、防监管);(2) 最优用法是"聪明模型当编排 + 本地小模型当省 token 的傻瓜子代理/报告生成器",而不是让笨模型先上手(会假阳性报告);(3) 敏感漏洞开发、越狱助手、渗透客户要求数据不出门等场景本地模型不可替代。Justin 补充吞吐量担忧(DGX Spark 双机约 20-30 token/s、4 并发流)与多机互联问题。

关键时间节点
时间类型说明
16:43立场Rez0:不介意为补贴 token 付费,能买多少买多少;$225-250 就能拿到 20 倍顶配订阅额度,非常划算;看到越来越多人取消云订阅觉得疯狂
17:11核心概念投资本地 AI 的根本原因:已经意识到没有 AI 真的无法工作
17:23案例本周事故:Rez0 的 hackbot 用 Codex 当管理器(orchestrator),把海量数据倾倒进 Codex 不停刷屏,几乎耗尽订阅额度
17:58案例录制当天 Claude 已宕机约 2 小时——"我做不到(没有 AI 干活)" → 需要本地 AI 作为冗余备份
18:15风险判断一旦(厂商)停止补贴 token,本地 AI 的(相对)价格就会飙升 → 最好现在就着手准备,以防万一
18:26类比类似"大家越来越不会手写 bash 命令":即使全部云端系统宕机,本地模型(如 Qwen)仍可用;若未来法规禁止用 AI 做网络安全,仍需要渗透测试能力 → 本地 AI 是对冲手段
19:38反模式与 JD 讨论过"先用笨的本地模型再升级到聪明模型":结论是坏主意——笨模型会在实际入侵成功之前就声称已入侵,产生虚假报告
19:55重点结论最有效用法:本地跑"中等聪明"模型,告诉 Codex:"需要技巧/品味/质量的任务必须用自己的子代理;只需一次性脚本完成的傻事就交给本地模型"——一个"傻瓜代理"用来省 token
20:24用法小模型干这类活反而更自然(没那么"聪明"也没那么偏执);还可用本地模型当报告生成器(报告生成来回迭代非常耗 token)
21:07用法Justin 补充:如今的简单模型也已非常好(不是 GPT-2 时代);数据合成(data synthesis)可能是最重要的委派任务:让子代理读整个 JS 文件并给出可抽查的偏移量锚点(如"客户端路径在此定义"、"这里拼接导致 API 请求全崩")
21:55注意事项主要担心:本地模型吞吐量。子代理/框架大多处于等待状态,父模型要么等待要么闲置,反而可并发 4 个任务
22:14数据DeepSeek Flash v4:两台 DGX Spark 即可较快流式输出、4 并发流、约 20-30 token/s;Justin 吐槽"20-30 token/s?哎哟兄弟",自己可能只搞到三台(机)
22:59待研究多机链式互联(chaining)没法像以前那样轻松串联,三台芯片可能需要交换机之类的东西,待研究
23:15用法理由一(双重):极敏感的漏洞利用开发。朋友 sshell 需要写脚本解析敏感数据时不敢用云端模型;有时直接与不受限制的模型对话快得多
23:54用法理由二:越狱助手。没有哪个顶级模型(Opus、Daybreak、Soul 等,机翻存疑)乐意帮你写越狱其他模型的载荷;本地越狱模型作为"越狱副驾驶"非常有用
24:23用法理由三(Matt Brown 补充):渗透测试客户不允许敏感数据发给 OpenAI/Anthropic 时,本地模型可整夜跑测试,数据永不离开你家
24:48平衡观点Justin:仅在部分威胁模型下有意义;对声称"数据太重要不能出门"的客户直言"兄弟,你没那么重要";但该能力值得"放在口袋里"备用
详细内容
  • 成本-用法分层(本节核心框架):
    • 云端补贴 token:单位成本最低,能买就买,但依赖厂商补贴与可用性。
    • 本地大内存(Mac Studio 256GB / 双 ASUS Spark):跑中型开源模型(DeepSeek Flash v4、Qwen 等)当子代理池。
    • 编排策略:聪明云端模型(Codex/Claude)做规划与高质量子代理;本地模型接"一次性脚本、数据合成、报告生成"等低品味高 token 任务。
    • 红线场景(必须本地):敏感数据不出域、越狱研究、法规/断网容灾。

06

信用卡薅羊毛、GitHub 赏金周边、herder.dev 与 Ubuntu 之争

25:25 - 31:00

先聊硬件大额消费的信用卡返现(Amex Gold Business 有 AI token 4 倍积分、Amex Platinum 送 $300 ChatGPT 商业额度);Justin 展示 GitHub 漏洞赏金计划的周边商店战利品(赛博朋克风无线充电器、可换 RGB);随后进入工具话题:CTBB 运营成员 UGE 推荐了 herder.dev——一个面向 CLI 编码代理的独立多路复用器(不集成 tmux),Justin 试用后很喜欢但在 Windows 上有窗口管理器问题,考虑把主力台式机切回 Ubuntu(引出全片首尾呼应的 Ubuntu 发音梗)。

关键时间节点
时间类型说明
25:28省钱技巧优化刷卡返现率:大额消费可换约 2000 点奖励积分
25:36省钱技巧Amex Gold Business 卡有 AI token 类目(约 4 倍积分);Amex Platinum 附带价值 300 美元的 ChatGPT 商业版额度(不含个人 Max 套餐,美国运通金卡在覆盖范围内)
26:08闲聊玩笑:要不要在节目描述里放信用卡推荐链接
26:35周边GitHub 漏洞赏金计划有周边商店:拿到赏金时附赠可在店内消费的积分;Rez0 抽到一个赛博朋克电影风格的无线充电器(RGB 可定制颜色);Justin 也收到过很棒的 GitHub 周边
27:47闲聊Justin 把蜡烛粘在咖啡保温器上,办公室"檀香加烟熏味"的老年生活自嘲
28:06观点Justin:现在完全被 AI 迷住了("去你的,Rez0")——以前喜欢钻研黑客技术,现在只是赚了更多钱(自嘲"绿帽越来越绿")
28:27工具推荐CTBB 后端运营 UGE 推荐 herder.dev;Justin 当时也在聊天室看到但还没试
28:57工具特性herder.dev 不是 tmux 集成,而是一个独立的多路复用器,专门为运行在 CLI 中的编码代理提供额外数据/管理能力;Justin 此前一直在自己拼凑类似方案,试用后非常喜欢
29:40问题在 Justin 的机器上 WM(窗口管理器)似乎有问题——他跑着"地球上最奇怪的发行版"(Windows 死忠,为了玩英雄联盟等游戏)
30:14计划Justin 打算在下次"游戏黑客之夜"后尝试切换系统:把主力台式机切回 Ubuntu
30:36彩蛋/梗呼应冷开场:Ubuntu 的发音之争("开头没有 U 也没有 Y"),互相调侃会被整个社区嘲笑
30:56彩蛋/梗互相调侃 throughput(吞吐量)的发音,"做播客真的很难,必须大声说出来"
07

AI 生活应用——3D 打印 lithophane 礼物 + 平均分配赏金池的 live-hack 活动

31:00 - 35:30

Justin 展示结婚 13 周年礼物:把婚礼照片交给 AI(Codex / Claude Code)端到端生成的 lithophane(光影浮雕片)——平时看似 3D 打印乱码、对着灯光就显出高分辨率照片,让他对 AI 端到端能力大吃一惊。Rez0 则预告下周参加一种新式 live-hack 活动:总赏金池在所有参与者中平均分配,活动短、开赛前不到一周才公布范围,氛围更轻松且更鼓励协作,但他建议控制规模并设参与门槛(防止有人零贡献白拿全款)。

关键时间节点
时间类型说明
31:46案例Justin 在一家 3D 打印公司帮忙(常给孩子们打印东西);为结婚纪念日(已 13 年)找礼物
32:01关键步骤在 Etsy 搜 3D 打印周年礼物,发现 lithophane(字幕机翻为"浮石",实为光影浮雕/透光浮雕片)
32:13示例说明lithophane 是一块 3D 打印塑料片:平时看着像 3D 打印乱码,放在窗户/灯光前就呈现出一幅图像——正是他们的婚礼照片,分辨率非常高
32:40重点结论只需对 Codex 或 Claude Code 说"为这张图生成一个 3D 打印文件",即可端到端完成——AI 能做到这一点令 Justin 大吃一惊
32:58活动预告Rez0 下周参加一个现场黑客(live-hack)活动:总赏金池平均分配给所有参与者,他从未参加过这种模式
33:12数据小项目但最终能拿到的钱相当可观;活动时间较短
33:29特点直到活动结束前不到一周才公布活动范围
33:59观察该模式下竞争氛围更轻松愉快、压力更小——因为现在很多工作由 AI 完成,"表现能在多大程度上反映我作为黑客的能力"已不那么重要;投入的时间精力能换取可观收益,反而更有动力
35:02建议应把规模控制在较小范围并设置严格的参与门槛:明显有些人什么都不做也能获得全额奖金,观感很差
08

尾声与片尾彩蛋(社区导流 + 蜡烛轮换创业点子)

35:30 - 37:31

因 Rez0 家三个孩子敲门而收尾。片尾固定导流至 ctb.show/discord 社区(高水平黑客讨论、大师班、黑客马拉松、独家内容、全职猎人公会)。片尾彩蛋中 Rez0 从蜡烛展开"领域知识":人类嗅觉适应性强(闻 5 分钟就麻木),因此市面应有"气味轮换"产品——自选组合包、构建五六个气味的轮换序列;Justin 直呼天才并愿意买单。

关键时间节点
时间类型说明
35:30收尾Rez0 家三个孩子敲门,节目收尾:"那是一个 pod(播客),再见"
35:39导流《Critical Thinking(批判性思维)》节目固定结尾:前往 ctb.show/discord 加入社区
35:49导流社区内容包括:高水平黑客讨论、大师班、黑客马拉松、独家内容,以及面向全职赏金猎人的"全职猎人公会"
36:03彩蛋片尾彩蛋:Rez0 谈蜡烛与嗅觉科学("如果太尴尬,剪辑 Richard 可以随时剪掉")
36:25核心概念嗅觉适应(olfactory adaptation):点燃蜡烛闻约 5 分钟后离开房间,回来才觉得"太棒了"——持续暴露会麻木
36:42创意疑问:为什么市面上没有"气味轮换蜡烛"产品?对比墙上插电的喷香器;设计成自选组合包,构建五六个气味的轮换序列,对抗嗅觉适应
37:23反馈Justin:真是天才之举,肯定会买,是款很棒的产品

整体总结

本期节目展示了 2026 年 AI 安全工作的两个缩影。攻击侧,Rez0 的"年度最爱"漏洞证明:当 AI 聊天机器人成为产品标配,提示注入与代理能力就成了新的入侵面,而传统 Web 攻击技术(CSP 绕过、缓存侧信道 XS-Leak、tab-nabbing、CSRF)在 AI 语境下被重新组合成优雅的端到端攻击链——干净的一键 POC(借道 Cloudflare Turnstile)是打动厂商与评审的关键。效率侧,Justin 两周 50 个 bug 的 hackbot 战报说明"AI 规模化赏金"已成现实,代价是厂商分诊压力剧增。基础设施侧,两人就"本地 AI vs 补贴 token"达成务实的分层共识:补贴额度能买就买(当前单价极低),但本地大内存硬件是对冲宕机、补贴退坡、监管与数据合规风险的必备冗余;最优编排是聪明云端模型做规划,本地模型承担一次性脚本、数据合成与报告生成等高 token 低品味任务。生活侧,lithophane 礼物与平均分配赏金池的 live-hack 活动,则体现了 AI 端到端能力与低压力竞赛模式的乐趣。

学习要点清单

翻译与内容存疑说明