从先知社区 5621 篇安全文档中提炼的漏洞挖掘核心思维框架
继上次我们分析了 wooyun legacy skill 后,我们又做了一件事——把先知社区 5621 篇安全研究文章全部过了一遍。
不是为了学习具体的漏洞利用技巧(那些网上到处都是),而是想搞清楚一个问题:
顶尖安全研究员的思维方式到底有什么共性?
答案比我们想象的要简单,也更有价值。
但更重要的是——我们不想让这些洞察只停留在一篇文章里。我们把它做成了一个可复用的"Skill",让 AI 能够像顶尖安全研究员一样思考。
之前的 wooyun legacy skill 解决的是漏洞发现的 corner cases 的覆盖问题,也就是 skill 能抽取 wooyun 漏洞里足够细的一些犄角旮旯的检测手段以及参数,解决的是具体执行的 corner cases 问题;而这次先知研究员 skill 解决的是方法论 corner cases 的问题,就像一群研究员一起讨论帮你解决问题一样。
LLM 不能彻底帮你解决这些问题,因为 LLM 无法覆盖具体的思维执行,比如就某个漏洞的研究方法,他的价值判断不如人类,而 skill 可以很好的把这些专家的价值判断落到硬盘里,你只需要加载对应的文件就行,但是他也有一个缺点,就是比较死,像是一个放大版的 workflow,这点是需要读者注意的。
那先说说我们的初衷。
安全行业有个痛点:知识传承效率太低。
一个资深研究员花了十年积累的经验,很难高效地传授给新人。写文章?新人看完记不住。带徒弟?一个人带不了几个。
我们在想:有没有可能把"专家的思维方式"提取出来,变成一种可以被 AI 调用的能力?
这就是我们做这个 Skill 的初衷——不是让 AI 掌握更多漏洞知识,而是让 AI 学会像专家一样思考问题。
具体来说,我们希望实现:
| 目标 | 说明 |
|---|---|
| 新人加速 | 刚入行的研究员,可以借助 AI 获得专家级的思维引导 |
| 经验沉淀 | 把散落在各处的研究文章,提炼成结构化的方法论 |
| 效率提升 | 减少重复踩坑,把时间花在真正有价值的探索上 |
这里分享一下我们的方法论,也许对其他想做类似事情的团队有参考价值。
5621 篇文章,我们先做了一轮人工分类:
| 类别 | 数量 | 代表性主题 |
|---|---|---|
| Web注入 | 348篇 | SQL注入、SSTI、命令注入 |
| 反序列化 | 268篇 | Java Gadget链、PHP反序列化 |
| 二进制安全 | 304篇 | ROP、堆利用、House of系列 |
| 域渗透 | 327篇 | Kerberos、委派攻击、横向移动 |
| 代码审计 | 402篇 | PHP/Java框架审计 |
| RCE/持久化 | 553篇 | 内存马、Rootkit、eBPF后门 |
| 其他 | 1419篇 | CTF、逆向、Fuzzing等 |
分类完成后,我们不是去总结"有哪些漏洞类型",而是去分析:作者在发现和利用这个漏洞时,经历了怎样的思维过程?
我们发现,尽管漏洞类型千差万别,但底层的思维模式高度相似。
比如,无论是挖 SQL 注入还是挖反序列化,高手都会:
- 先识别输入入口(攻击面)
- 然后追踪数据流向(假设验证)
- 接着探索边界条件(边界探索)
- 最后反推防御逻辑(防御逆向)
这就是我们后面会讲的"四层思维模型"的由来。
最后,我们把提炼出的思维模式,封装成了 Claude Code 可以调用的 Skill 格式。
这样做的好处是:当你用 Claude Code 做安全研究时,它不再是一个只会查资料的工具,而是一个具备专家思维方式的研究伙伴。
说了这么多,具体怎么用呢?我们整理了六个典型场景。
当你卡住的时候,可以让 AI 用这个 Skill 来引导你的思考。
/vuln-research 我在测试一个Java应用,找到了一个反序列化入口但不知道怎么利用
当你需要规划完整渗透路径时,可以让 AI 帮你串联各个模块。
/vuln-research 帮我规划从Web入口到域控的完整攻击路径
当你需要快速理解一个新漏洞时。
/vuln-research 分析CVE-2024-XXXX的利用思路
当你需要系统性地审计代码时。
/vuln-research 拿到一套Spring Boot源代码应该如何审计
当你需要快速找到利用思路时。
/vuln-research CTF中遇到Java反序列化题目,如何快速构造Gadget链
反过来用,可以帮助防御方发现盲区。
/vuln-research 帮我用攻击者视角审计一下我们的Java应用安全
AI 调用 Skill 后会按攻击面逐一检查:
- 反序列化风险:ObjectInputStream使用、Fastjson版本、XStream配置
- 注入风险:SQL拼接、OGNL/SpEL表达式、模板引擎
- 权限维持风险:是否有Agent加载入口、Filter动态注册能力
- 供应链风险:依赖库版本、是否存在已知CVE
现在回到我们最初的问题:高手和新手的差距到底在哪?
我们原以为,差距在于知识量——高手懂得更多漏洞类型、掌握更多利用技巧。
但分析了几千篇文章后,我们发现:差距其实在于提问的方式。
举个例子。
面对同一个目标,新手的思维链条是这样的:
找到SQL注入点 → 尝试payload → 被WAF拦截 → 换payload → 还是被拦 → 放弃
而高手的思维链条是这样的:
找到SQL注入点 → 被WAF拦截 → 停下来想:WAF的检测逻辑是什么?
→ 它检测POST body,那Header呢?
→ X-Forwarded-For会写入日志表
→ 日志写入用的是预编译吗?
→ 不是,直接拼接
→ 二次注入!
看出区别了吗?
新手在技术层面打转,高手在认知层面跃迁。
这个跃迁,我们把它抽象成了一个四层模型。
我们把安全研究中的思维活动,分成了四个层次:
| 层级 | 核心问题 | 思维特征 |
|---|---|---|
| L1 攻击面识别 | 输入在哪里?信任边界在哪里? | 枚举、收集 |
| L2 假设验证 | 我的猜测对不对?如何证伪? | 实验、验证 |
| L3 边界探索 | 规范的灰色地带在哪里? | 突破、创新 |
| L4 防御逆向 | 如果我是防御者,会怎么做? | 换位、博弈 |
大多数人卡在 L1 和 L2 之间来回打转。
高手的秘密是:当 L1-L2 走不通时,会主动跳到 L4。
这就是上面那个例子中发生的事情——被 WAF 拦截后,高手没有继续在 payload 层面较劲,而是切换到防御者视角,去思考"WAF 是怎么工作的"。
一旦理解了防御逻辑,绕过就变成了找盲区的游戏。
这就是我们说的"元认知"——不是思考问题本身,而是思考"我应该怎么思考这个问题"。
分析完单点突破的思维模式后,我们又发现了另一个规律:高手很少只用一种技术。
他们擅长把不同领域的技术串联起来,形成完整的攻击链。
| 起点 | 终点 | 桥接技术 | 真实案例 |
|---|---|---|---|
| Web注入 | 反序列化 | JNDI注入 | Log4j打Fastjson |
| 反序列化 | RCE | Gadget链 | CC链执行命令 |
| RCE | 持久化 | 内存马 | Filter型内存马 |
| Web漏洞 | 域渗透 | 凭据窃取 | SQL注入拿Hash |
这个表格的价值在于:当你在某个领域卡住时,可以考虑换一个领域突破。
我们内部把这个叫做"攻击链思维":不要只想着单点突破,要想着如何把多个小漏洞串成一个大漏洞。
最后,分享几条我们从 5621 篇文章中提炼出的跨领域规律。
| 规律 | 说明 |
|---|---|
| 复杂度即机会 | 功能越多,攻击面越大。解析器、引擎、协议处理器是漏洞高发区。 |
| 时序决定可见性 | 先加载的检测后加载的。内存马检测的本质是时序竞争。 |
| 抽象层越高,防御越难 | 内核态对用户态天然不可见。eBPF/Rootkit很难用常规手段检测。 |
| 特征可变,行为不变 | 静态特征可以无限变形,但恶意行为的本质不会变。 |
| 历史会重演 | 同类问题往往重复出现。Log4j之后,其他日志库大概率也有类似问题。 |
vuln-research/
├── SKILL.md # 主入口 - 元思考框架 (136行)
├── README.md # 本文档
└── references/ # 专题模块 (9个文件, 1651行)
├── web-injection.md # Web注入方法论
├── binary-exploitation.md # 二进制安全
├── domain-pentest.md # 域渗透
├── reverse-engineering.md # 逆向分析
├── fuzzing.md # Fuzzing方法论
├── privilege-bypass.md # 提权/绕过
├── rce-persistence.md # RCE与持久化
├── redteam-ctf.md # 红队/CTF
└── case-index.md # CVE案例索引
总规模: 84KB, 11个文件, ~1880行
能力边界说明:
- ✅ 提供系统化的思维框架和方法论指导
- ✅ 覆盖主流安全研究领域
- ✅ 可作为 Claude Code Skill 直接调用
⚠️ 不提供具体的漏洞利用代码⚠️ 需要配合实际技术能力使用
回到开头那个问题:
顶尖安全研究员的思维方式到底有什么共性?
我们的答案是:
他们不是知道更多的漏洞,而是掌握了一套在未知领域快速建立认知框架的能力。
这也是我们做这个 Skill 的意义——把这种能力提取出来,让更多人能够借助 AI 获得专家级的思维引导。
我们相信,未来的安全研究,不再是人与工具的关系,而是人与 AI 协作的关系。
AI 不是来替代研究员的,而是来放大研究员能力的。
而这个 Skill,就是我们在这个方向上的一次尝试。
vuln-research skill 已开源,可以直接集成到 Claude Code 中使用。
git clone https://github.com/tanweai/xianzhi-research.git ~/.claudeg/skills/vuln-research在 Claude Code 对话中:
/vuln-research 如何审计一套Spring Boot代码
/vuln-research Java反序列化Gadget链构造思路
/vuln-research 域渗透中的Kerberos攻击路径
也可以主动询问:"用 vuln-research skill 帮我分析 xxx"
┌─────────────────────────────────────────────────────────────────────────┐
│ 安全研究思维金字塔 │
├─────────────────────────────────────────────────────────────────────────┤
│ L4: 防御反推 ← 从补丁/过滤规则/安全机制反推绕过点 │
│ L3: 边界探索 ← 在已知攻击面上寻找corner case │
│ L2: 假设验证 ← 构建推理链条,逐步验证假设 │
│ L1: 攻击面识别 ← 寻找数据与指令不分离的接口 │
└─────────────────────────────────────────────────────────────────────────┘
| 领域 | 核心公式 | 关键洞察 |
|---|---|---|
| 通用 | 漏洞 = 边界失控 + 状态不一致 + 信任假设违背 | 所有漏洞的本质 |
| 代码审计 | 漏洞 = Source可达Sink && 无有效Sanitizer | 污点传播分析 |
| 二进制 | 利用 = 信息泄露 + 原语构造 + 控制流劫持 | 原语组合与放大 |
| 域渗透 | 攻击 = 信任链逐级瓦解 | 委派错误=整域沦陷 |
| 模块 | 文件 | 核心内容 |
|---|---|---|
| Web注入 | web-injection.md | SQL/XSS/SSTI、WAF绕过策略树、语义差异利用 |
| 二进制安全 | binary-exploitation.md | ROP谱系、House of系列、glibc版本利用 |
| 域渗透 | domain-pentest.md | Kerberos攻击、委派利用、横向移动 |
| 逆向分析 | reverse-engineering.md | VM对抗、反混淆、沙箱绕过 |
| Fuzzing | fuzzing.md | 目标选择、覆盖率驱动、变异策略 |
| 提权/绕过 | privilege-bypass.md | 免杀技术、EDR绕过、权限提升 |
| RCE与持久化 | rce-persistence.md | 后门技术、持久化方法 |
| 红队/CTF | redteam-ctf.md | 完整攻击链、云安全 |
| 案例索引 | case-index.md | 按CVE/技术分类的真实案例 |
- 假设-验证循环 — 所有安全研究都遵循:假设 → 测试 → 迭代优化
- 边界条件思维 — Corner case 是所有漏洞类型的共同温床
- 防御反推 — 从已知防御措施反推攻击路径是高效的研究策略
- 链式思维 — 单个漏洞价值有限,漏洞链才能完成完整攻击
- 版本敏感 — 同一漏洞点在不同版本需要不同利用方法
- 语义差异 — 不同组件对同一输入的解析差异是绕过的核心
本项目仅供安全研究和教育目的使用。使用者应遵守当地法律法规,在获得授权的情况下进行安全测试。作者不对任何滥用行为负责。
探微杜渐安全研究团队,专注于 AI + 安全的交叉领域研究。
我们相信:让 AI 学会像专家一样思考,是提升整个行业效率的关键。
如果你也在做类似的事情,欢迎交流。
MIT License
贡献者: 欢迎提交 Issue 和 PR 来完善方法论内容。
原创内容,转载请注明出处
