
Vuln Research
- 34 installs
- 178 repo stars
- Updated January 29, 2026
- tanweai/xianzhi-research
Vuln Research is an agent skill that delivers a four-level security meta-thinking framework and scenario-specific modules for systematic vulnerability dis
About
Vuln Research packages a meta-thinking methodology for security work drawn from a large corpus of practitioner writeups, giving solo builders and small teams a consistent way to hunt flaws instead of guessing payloads. The skill organizes thinking into stacked layers—from spotting interfaces where data and control mix, through hypothesis chains and corner-case exploration, to inferring bypasses from patches and filters—and ties each layer to a repeatable iterate loop. It applies when you are doing vulnerability research, penetration testing, source-to-sink code audit, red-team chain planning, malware reverse engineering, or CTF problem solving and need structured navigation across web, binary, and enterprise-trust domains. Triggers align with common Chinese and English security verbs so agents attach the right module for the scenario. It is advanced material meant to complement tooling, not replace responsible authorization and scope rules.
- Four-level meta-thinking pyramid from attack-surface identification through defense-aware bypass (L1–L4)
- Universal decision loop: input → context → hypothesis → payload → response → iterate
- Cross-domain formulas for web audit (Source–Sink), binary exploitation, and domain-trust attacks
- Scenario routing for injection, deserialization, binary, lateral movement, WAF/EDR evasion, and fuzzing
- Framework distilled from 5600+ community security writeups as reusable mental models
Vuln Research by the numbers
- 34 all-time installs (skills.sh)
- Ranked #1,467 of 2,203 Security skills by installs in the Skillselion catalog
- Security screen: CRITICAL risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/tanweai/xianzhi-research --skill vuln-researchAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 34 |
|---|---|
| repo stars | ★ 178 |
| Security audit | 2 / 3 scanners passed |
| Last updated | January 29, 2026 |
| Repository | tanweai/xianzhi-research ↗ |
What it does
Apply a layered security-research playbook—attack surface, hypothesis loops, bypass thinking—for audits, pentests, red team paths, and CTF-style analysis.
Who is it for?
Best when you have legal scope and need structured methodology for audits, pentests, red team planning, or CTF-style challenges.
Skip if: Unauthorized testing, checkbox compliance-only scans, or beginners who only need a single CVE PoC without methodology.
When should I use this skill?
漏洞挖掘、安全研究、渗透测试、代码审计、红队攻防、CTF、逆向分析、WAF绕过、免杀、提权、横向移动、域渗透、反序列化、二进制安全、Fuzzing
What you get
You follow documented attack-surface, hypothesis, and defense-reverse models to choose the right module and iterate payloads or audit paths with explicit success criteria.
- Scenario-selected methodology module and decision loop
- Documented hypotheses, attack surface notes, and iteration log
By the numbers
- Methodology distilled from 5600+ security community documents
- Four-level (L1–L4) security thinking pyramid
- Cross-domain core formulas table for general, code audit, binary, and domain attacks
Files
安全研究元思考方法论
从先知社区5600+篇安全文档中提炼的漏洞挖掘核心思维框架。
核心元思考模型
┌─────────────────────────────────────────────────────────────────────────┐
│ 安全研究思维金字塔 │
├─────────────────────────────────────────────────────────────────────────┤
│ L4: 防御反推 ← 从补丁/过滤规则/安全机制反推绕过点 │
│ L3: 边界探索 ← 在已知攻击面上寻找corner case │
│ L2: 假设验证 ← 构建推理链条,逐步验证假设 │
│ L1: 攻击面识别 ← 寻找数据与指令不分离的接口 │
└─────────────────────────────────────────────────────────────────────────┘通用决策循环
输入点识别 → 上下文分析 → 假设构建 → payload构造 → 响应分析 → 迭代优化
↑ │
└──────────────────────────────────────────────────────────────┘跨领域核心公式
| 领域 | 核心公式 | 关键洞察 |
|---|---|---|
| 通用 | 漏洞 = 边界失控 + 状态不一致 + 信任假设违背 | 所有漏洞的本质 |
| 代码审计 | 漏洞 = Source可达Sink && 无有效Sanitizer | 污点传播分析 |
| 二进制 | 利用 = 信息泄露 + 原语构造 + 控制流劫持 | 原语组合与放大 |
| 域渗透 | 攻击 = 信任链逐级瓦解 | 委派错误=整域沦陷 |
---
快速导航
根据研究场景选择对应的方法论模块:
| 场景 | 参考文档 | 核心思维 |
|---|---|---|
| Web注入漏洞 | references/web-injection.md | 语义差异利用、WAF绕过策略树 |
| 反序列化漏洞 | references/deserialization.md | Gadget链构造、版本边界速查 |
| 二进制安全 | references/binary-exploitation.md | ROP谱系、House of系列 |
| 域渗透/内网 | references/domain-pentest.md | 委派攻击、持久化矩阵 |
| 代码审计 | references/code-audit.md | Source-Sink模型、框架审计 |
| 逆向分析 | references/reverse-engineering.md | VM对抗、沙箱绕过六维度 |
| Fuzzing | references/fuzzing.md | 目标选择矩阵、覆盖率驱动 |
| 提权/绕过 | references/privilege-bypass.md | 免杀技术层次、EDR规避 |
| 红队/CTF | references/redteam-ctf.md | 完整攻击链、云安全 |
| 案例索引 | references/case-index.md | 按技术/CVE分类的案例库 |
---
元思考原则
1. 假设-验证循环
所有安全研究都遵循:假设 → 测试 → 迭代优化
2. 边界条件思维
Corner case 是所有漏洞类型的共同温床
3. 防御反推
从已知防御措施反推攻击路径是高效的研究策略
4. 链式思维
单个漏洞价值有限,漏洞链才能完成完整攻击
5. 版本敏感
同一漏洞点在不同版本需要不同利用方法
6. 语义差异
不同组件对同一输入的解析差异是绕过的核心
---
使用指南
1. 确定研究目标:明确要分析的漏洞类型或攻击场景 2. 查阅对应模块:根据快速导航表选择合适的方法论文档 3. 应用元思考框架:使用L1-L4思维金字塔指导分析过程 4. 参考案例索引:查找相关CVE或技术的具体案例 5. 迭代优化:根据实际情况调整策略
---
核心洞察速查
Web安全
- 漏洞本质 = 数据指令分离失效
- JNDI版本边界:JDK 8u191 后需不同利用路径
- WAF绕过 = 语义差异利用
反序列化
- "万物皆可Gadget":任何Serializable类都可能成为链的一环
- 二次反序列化是协议降级的关键(SignedObject)
- 黑名单必有遗漏,代理封装是高版本绕过通用思路
二进制安全
- 利用链本质:原语的组合与放大
- glibc版本决定可用技术(2.27 tcache、2.32 safe-linking)
- IO利用演进:vtable检查后,_wide_data成为突破口
域渗透
- SPN查询优于端口扫描(更精准更隐蔽)
- 委派配置错误可能导致整域沦陷
- 最隐蔽的攻击往往利用合法的域功能而非漏洞
逆向分析
- 逆向 = 信息熵降低过程
- VM保护三路径:opcode还原、z3约束、插桩爆破
- Triton + Z3 + AI 是 OLLVM 反混淆现代范式
红队攻防
- 完整链:边界突破→提权→穿透→横向→域控→维持
- "内网密码复用"是经验驱动的横向移动关键
- 云原生新攻击面:K8S hostPath + tolerations
公众号搜索“探微杜渐人工智能”
微信群已经满了 可以加我微信 拉你进群 <img width="200" alt="微信二维码" src="https://github.com/user-attachments/assets/3bc7a5b4-a975-4cda-be6d-b662b117cbea" />
🔐 安全研究元思考方法论
从先知社区 5621 篇安全文档中提炼的漏洞挖掘核心思维框架

---
📝 项目背景
继上次我们分析了 wooyun legacy skill 后,我们又做了一件事——把先知社区 5621 篇安全研究文章全部过了一遍。
不是为了学习具体的漏洞利用技巧(那些网上到处都是),而是想搞清楚一个问题:
顶尖安全研究员的思维方式到底有什么共性?
答案比我们想象的要简单,也更有价值。
但更重要的是——我们不想让这些洞察只停留在一篇文章里。我们把它做成了一个可复用的"Skill",让 AI 能够像顶尖安全研究员一样思考。
---
00 为什么要做这件事?
之前的 wooyun legacy skill 解决的是漏洞发现的 corner cases 的覆盖问题,也就是 skill 能抽取 wooyun 漏洞里足够细的一些犄角旮旯的检测手段以及参数,解决的是具体执行的 corner cases 问题;而这次先知研究员 skill 解决的是方法论 corner cases 的问题,就像一群研究员一起讨论帮你解决问题一样。
LLM 不能彻底帮你解决这些问题,因为 LLM 无法覆盖具体的思维执行,比如就某个漏洞的研究方法,他的价值判断不如人类,而 skill 可以很好的把这些专家的价值判断落到硬盘里,你只需要加载对应的文件就行,但是他也有一个缺点,就是比较死,像是一个放大版的 workflow,这点是需要读者注意的。
那先说说我们的初衷。
安全行业有个痛点:知识传承效率太低。
一个资深研究员花了十年积累的经验,很难高效地传授给新人。写文章?新人看完记不住。带徒弟?一个人带不了几个。
我们在想:有没有可能把"专家的思维方式"提取出来,变成一种可以被 AI 调用的能力?
这就是我们做这个 Skill 的初衷——不是让 AI 掌握更多漏洞知识,而是让 AI 学会像专家一样思考问题。
具体来说,我们希望实现:
| 目标 | 说明 |
|---|---|
| 新人加速 | 刚入行的研究员,可以借助 AI 获得专家级的思维引导 |
| 经验沉淀 | 把散落在各处的研究文章,提炼成结构化的方法论 |
| 效率提升 | 减少重复踩坑,把时间花在真正有价值的探索上 |
---
01 我们是怎么提取这个 Skill 的?
这里分享一下我们的方法论,也许对其他想做类似事情的团队有参考价值。
第一步:分类与聚类
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 注入还是挖反序列化,高手都会:
1. 先识别输入入口(攻击面) 2. 然后追踪数据流向(假设验证) 3. 接着探索边界条件(边界探索) 4. 最后反推防御逻辑(防御逆向)
这就是我们后面会讲的"四层思维模型"的由来。
第三步:结构化输出
最后,我们把提炼出的思维模式,封装成了 Claude Code 可以调用的 Skill 格式。
这样做的好处是:当你用 Claude Code 做安全研究时,它不再是一个只会查资料的工具,而是一个具备专家思维方式的研究伙伴。
---
02 这个 Skill 怎么用?
说了这么多,具体怎么用呢?我们整理了六个典型场景。
场景一:漏洞挖掘思路卡住了
当你卡住的时候,可以让 AI 用这个 Skill 来引导你的思考。
/vuln-research 我在测试一个Java应用,找到了一个反序列化入口但不知道怎么利用<img width="600" alt="场景一:漏洞挖掘思路" src="https://github.com/user-attachments/assets/32482679-ee04-491a-9af7-95cbe7ecbfb3" />
场景二:规划完整渗透路径
当你需要规划完整渗透路径时,可以让 AI 帮你串联各个模块。
/vuln-research 帮我规划从Web入口到域控的完整攻击路径<img width="600" alt="场景二:渗透路径规划" src="https://github.com/user-attachments/assets/ffdeee4d-1b99-4142-a76b-ac50f046e5fd" />
场景三:分析一个新 CVE
当你需要快速理解一个新漏洞时。
/vuln-research 分析CVE-2024-XXXX的利用思路场景四:代码审计找漏洞
当你需要系统性地审计代码时。
/vuln-research 拿到一套Spring Boot源代码应该如何审计场景五:CTF 快速解题
当你需要快速找到利用思路时。
/vuln-research CTF中遇到Java反序列化题目,如何快速构造Gadget链场景六:防御审计
反过来用,可以帮助防御方发现盲区。
/vuln-research 帮我用攻击者视角审计一下我们的Java应用安全AI 调用 Skill 后会按攻击面逐一检查:
1. 反序列化风险:ObjectInputStream使用、Fastjson版本、XStream配置 2. 注入风险:SQL拼接、OGNL/SpEL表达式、模板引擎 3. 权限维持风险:是否有Agent加载入口、Filter动态注册能力 4. 供应链风险:依赖库版本、是否存在已知CVE
---
03 一个反直觉的发现
现在回到我们最初的问题:高手和新手的差距到底在哪?
我们原以为,差距在于知识量——高手懂得更多漏洞类型、掌握更多利用技巧。
但分析了几千篇文章后,我们发现:差距其实在于提问的方式。
举个例子。
面对同一个目标,新手的思维链条是这样的:
找到SQL注入点 → 尝试payload → 被WAF拦截 → 换payload → 还是被拦 → 放弃而高手的思维链条是这样的:
找到SQL注入点 → 被WAF拦截 → 停下来想:WAF的检测逻辑是什么?
→ 它检测POST body,那Header呢?
→ X-Forwarded-For会写入日志表
→ 日志写入用的是预编译吗?
→ 不是,直接拼接
→ 二次注入!看出区别了吗?
新手在技术层面打转,高手在认知层面跃迁。
这个跃迁,我们把它抽象成了一个四层模型。
---
04 四层思维模型
我们把安全研究中的思维活动,分成了四个层次:
| 层级 | 核心问题 | 思维特征 |
|---|---|---|
| L1 攻击面识别 | 输入在哪里?信任边界在哪里? | 枚举、收集 |
| L2 假设验证 | 我的猜测对不对?如何证伪? | 实验、验证 |
| L3 边界探索 | 规范的灰色地带在哪里? | 突破、创新 |
| L4 防御逆向 | 如果我是防御者,会怎么做? | 换位、博弈 |
大多数人卡在 L1 和 L2 之间来回打转。
高手的秘密是:当 L1-L2 走不通时,会主动跳到 L4。
这就是上面那个例子中发生的事情——被 WAF 拦截后,高手没有继续在 payload 层面较劲,而是切换到防御者视角,去思考"WAF 是怎么工作的"。
一旦理解了防御逻辑,绕过就变成了找盲区的游戏。
这就是我们说的"元认知"——不是思考问题本身,而是思考"我应该怎么思考这个问题"。
---
05 跨域攻击链:高手的组合拳
分析完单点突破的思维模式后,我们又发现了另一个规律:高手很少只用一种技术。
他们擅长把不同领域的技术串联起来,形成完整的攻击链。
| 起点 | 终点 | 桥接技术 | 真实案例 |
|---|---|---|---|
| Web注入 | 反序列化 | JNDI注入 | Log4j打Fastjson |
| 反序列化 | RCE | Gadget链 | CC链执行命令 |
| RCE | 持久化 | 内存马 | Filter型内存马 |
| Web漏洞 | 域渗透 | 凭据窃取 | SQL注入拿Hash |
这个表格的价值在于:当你在某个领域卡住时,可以考虑换一个领域突破。
我们内部把这个叫做"攻击链思维":不要只想着单点突破,要想着如何把多个小漏洞串成一个大漏洞。
---
06 几条"元规律"
最后,分享几条我们从 5621 篇文章中提炼出的跨领域规律。
| 规律 | 说明 |
|---|---|
| 复杂度即机会 | 功能越多,攻击面越大。解析器、引擎、协议处理器是漏洞高发区。 |
| 时序决定可见性 | 先加载的检测后加载的。内存马检测的本质是时序竞争。 |
| 抽象层越高,防御越难 | 内核态对用户态天然不可见。eBPF/Rootkit很难用常规手段检测。 |
| 特征可变,行为不变 | 静态特征可以无限变形,但恶意行为的本质不会变。 |
| 历史会重演 | 同类问题往往重复出现。Log4j之后,其他日志库大概率也有类似问题。 |
---
07 结构和能力边界
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 直接调用
- ⚠️ 不提供具体的漏洞利用代码
- ⚠️ 需要配合实际技术能力使用
---
08 写在最后
回到开头那个问题:
顶尖安全研究员的思维方式到底有什么共性?
我们的答案是:
他们不是知道更多的漏洞,而是掌握了一套在未知领域快速建立认知框架的能力。
这也是我们做这个 Skill 的意义——把这种能力提取出来,让更多人能够借助 AI 获得专家级的思维引导。
我们相信,未来的安全研究,不再是人与工具的关系,而是人与 AI 协作的关系。
AI 不是来替代研究员的,而是来放大研究员能力的。
而这个 Skill,就是我们在这个方向上的一次尝试。
---
🚀 如何获取这个 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/技术分类的真实案例 |
---
🔑 元思考原则
1. 假设-验证循环 — 所有安全研究都遵循:假设 → 测试 → 迭代优化 2. 边界条件思维 — Corner case 是所有漏洞类型的共同温床 3. 防御反推 — 从已知防御措施反推攻击路径是高效的研究策略 4. 链式思维 — 单个漏洞价值有限,漏洞链才能完成完整攻击 5. 版本敏感 — 同一漏洞点在不同版本需要不同利用方法 6. 语义差异 — 不同组件对同一输入的解析差异是绕过的核心
---
⚠️ 免责声明
本项目仅供安全研究和教育目的使用。使用者应遵守当地法律法规,在获得授权的情况下进行安全测试。作者不对任何滥用行为负责。
---
关于我们
探微杜渐安全研究团队,专注于 AI + 安全的交叉领域研究。
我们相信:让 AI 学会像专家一样思考,是提升整个行业效率的关键。
如果你也在做类似的事情,欢迎交流。
---
📄 License
MIT License
---
贡献者: 欢迎提交 Issue 和 PR 来完善方法论内容。
原创内容,转载请注明出处
二进制安全研究方法论
元思考框架
核心思维范式
漏洞本质 = 边界失控 + 状态不一致 + 信任假设违背三层抽象模型:
| 层次 | 关注点 | 典型问题 |
|---|---|---|
| 数据层 | 内存边界、类型安全 | 溢出、类型混淆、整数溢出 |
| 控制流层 | 执行路径、返回地址 | ROP、JOP、CFI绕过 |
| 语义层 | 程序逻辑、状态机 | UAF、条件竞争、逻辑漏洞 |
利用思维递进模型
信息泄露 → 原语构造 → 控制流劫持 → 任意代码执行
↓ ↓ ↓ ↓
地址获取 写原语 RIP控制 shellcode/ROP核心洞察:每一步都是为下一步创造条件,利用链的本质是原语的组合与放大。
---
漏洞模式识别
栈溢出
识别checklist: 1. 危险函数: gets(), strcpy(), sprintf(), scanf("%s"), read()无边界 2. 栈布局分析: buffer到ebp/rbp的偏移 + 指针大小 = 返回地址偏移 3. 保护检查: checksec确认NX/Canary/PIE/ASLR状态
偏移计算公式(32位):
offset = buffer_size + saved_ebp(4) = distance_to_ret堆漏洞
| 类型 | 识别特征 | 利用方向 |
|---|---|---|
| UAF | free后指针未置空 | tcache poisoning |
| Double Free | 同一chunk释放两次 | 链表污染 |
| Heap Overflow | 写入超过chunk边界 | 修改相邻chunk元数据 |
| Off-by-one | 边界差一字节 | chunk overlapping |
格式化字符串
漏洞代码:printf(user_input); 正常代码:printf("%s", user_input);
利用能力:
%p/%x:泄露栈上数据%s:泄露任意地址内容%n:向任意地址写入数据
---
保护绕过矩阵
| 保护机制 | 防护目标 | 绕过策略 |
|---|---|---|
| NX/DEP | 禁止栈执行 | ROP/JOP/ret2libc |
| ASLR | 地址随机化 | 格式化字符串泄露、UAF泄露 |
| Canary | 栈溢出检测 | 泄露或劫持__stack_chk_fail |
| PIE | 代码段随机化 | 部分覆写、信息泄露 |
| RELRO | GOT表保护 | __malloc_hook、__free_hook |
| Safe-linking (2.32+) | tcache指针加密 | 泄露heap地址解密 |
ASLR绕过的信息泄露链
泄露libc地址的典型方法:
1. 格式化字符串: %p泄露栈上的libc地址
2. GOT泄露: 调用puts(puts_got)泄露puts真实地址
3. UAF泄露: free后的chunk进入unsorted bin,fd/bk指向main_arena
4. stdout泄露: 利用_IO_2_1_stdout_结构体---
ROP技术谱系
┌─────────────────────────────────────────────────────────────┐
│ ROP技术谱系 │
├─────────────────────────────────────────────────────────────┤
│ ret2text ─────► 程序内有后门函数,直接跳转 │
│ ↓ │
│ ret2libc ─────► 利用libc中的system("/bin/sh") │
│ ↓ │
│ ret2syscall ──► 静态编译,直接构造系统调用 │
│ ↓ │
│ ret2csu ──────► gadget不足时,利用__libc_csu_init │
│ ↓ │
│ SROP ─────────► 利用sigreturn控制所有寄存器 │
│ ↓ │
│ ret2dlresolve ► 无libc泄露,伪造延迟绑定结构 │
└─────────────────────────────────────────────────────────────┘ret2libc标准流程(64位)
# 第一阶段: 泄露libc地址
payload1 = padding + p64(pop_rdi) + p64(puts_got) + p64(puts_plt) + p64(main)
# 第二阶段: 计算并调用system
libc_base = leaked_puts - libc.symbols['puts']
system = libc_base + libc.symbols['system']
binsh = libc_base + next(libc.search(b'/bin/sh'))
payload2 = padding + p64(pop_rdi) + p64(binsh) + p64(system)---
House of系列
| 技术名称 | 核心原理 | 适用版本 |
|---|---|---|
| House of Force | 控制top chunk size | < 2.29 |
| House of Orange | 无free获得unsorted bin | < 2.24 |
| House of Botcake | tcache与unsorted bin重叠 | 2.27-2.31 |
| House of Apple2 | _IO_wfile_overflow | 2.24+ |
| House of Kiwi | __malloc_assert触发 | 2.32+ |
tcache poisoning
目标: 让tcache链表包含目标地址,使malloc返回任意地址
glibc 2.32+需要解密:
encrypted_ptr = (heap_addr >> 12) ^ target_addr---
IO_FILE利用
演进思路
glibc 2.24之前: 直接伪造vtable
glibc 2.24-2.35: 利用_IO_str_overflow等合法函数
glibc 2.35+: _wide_data利用 (house_of_apple2)House of Apple2核心
绕过思路:vtable检查只检查_IO_FILE的vtable,不检查_wide_data的vtable
利用链:
_IO_flush_all_lockp → _IO_wfile_overflow → _IO_wdoallocbuf → WDOALLOCATE---
调试核心命令
# 基础检查
checksec ./binary
# pwndbg扩展
heap # 查看堆布局
bins # 查看所有bin
tcache # 查看tcache
vmmap # 查看内存映射
# ROPgadget
ROPgadget --binary ./binary --only "pop|ret"案例索引
按技术类型和CVE分类的安全研究案例库,基于先知社区5600+篇文档提炼。
---
按漏洞类型分类
Web注入类
| 案例ID | 标题 | 核心技术点 |
|---|---|---|
| 10041 | Java SQL注入深入分析 | JDBC、MyBatis、预编译绕过 |
| 10042 | SQL注入之Mysql注入姿势及绕过总结 | 绕过技术大全 |
| 10538 | 关于SSTI注入的二三事 | Jinja2、Thymeleaf模板注入 |
| 10433 | LDAP注入的深入利用 | LDAP查询语法、绕过 |
| 10122 | JNDI注入分析 | JNDI、RMI、LDAP协议 |
| 10119 | 高版本JDK下的JNDI注入浅析 | JDK版本绕过 |
反序列化类
| 案例ID | 标题 | 核心技术点 |
|---|---|---|
| 10011 | WeblogicT3反序列化浅析 | T3协议、CC链 |
| 10017 | ysoserial-CommonsBeanutils的shiro无依赖链改造 | CB链、Shiro |
| 10088 | 最新Laravel反序列化漏洞 | PHP反序列化 |
| 10144 | 利用shiro反序列化注入冰蝎内存马 | Shiro、内存马 |
| 15246 | 通天星CMSv6 Jasper反序列化漏洞分析 | Jasper |
二进制安全类
| 案例ID | 标题 | 核心技术点 |
|---|---|---|
| 90806 | CTF-Pwn从栈溢出到系统调用:ROP攻击全景图解 | ROP全谱系 |
| 90811 | house_of_apple2的演变由来及其源码解析 | IO利用、高版本glibc |
| 90810 | house_of_botcake详细源码解析 | tcache利用 |
| 12184 | 栈迁移原理深入理解以及实操 | Stack Pivoting |
| 12644 | 高级ROP之SROP利用 | sigreturn |
| 13690 | 格式化字符串漏洞原理及其利用详解 | fmt利用 |
域渗透/内网类
| 案例ID | 标题 | 核心技术点 |
|---|---|---|
| 11001 | 域渗透之委派攻击全集 | 非约束/约束/RBCD委派 |
| 10254 | 内网漫游之Kerberos协议利用加经典漏洞利用总结 | Kerberos攻击 |
| 13923 | 域渗透-横向移动手法总结 | PTH、PTT、WMI |
| 13938 | 域渗透-获取域控方法总结 | 域控攻击技术 |
| 17230 | ADCS攻击指北-权限提升 | 证书服务攻击 |
| 12073 | NTLM网络认证及NTLM-Relay攻击 | NTLM Relay |
逆向分析类
| 案例ID | 标题 | 核心技术点 |
|---|---|---|
| 90837 | 逆向工程中VM类题目的分析与解法综述 | VM保护对抗 |
| 90829 | 沙箱检测与绕过 | 沙箱对抗六维度 |
| 90825 | 多阶段Rust加载器分析 | 恶意软件分析 |
| 19255 | Triton与AI的OLLVM混淆分析 | 符号执行、反混淆 |
| 12132 | 常见的壳与脱壳方式 | 脱壳技术 |
| 12992 | 反调试浅析 | 反调试技术 |
代码审计类
| 案例ID | 标题 | 核心技术点 |
|---|---|---|
| 10005 | ZbzCMS 2.1 审计 | PHP CMS审计 |
| 10022 | 西湖论剑-信呼oa审计复盘 | OA审计 |
| 10126 | 从0开始学习代码审计之百家CMS | PHP审计入门 |
| 10150 | MetInfo CMS代码审计-PHP | PHP框架审计 |
| 12009 | 记一次实战代码审计 | 实战审计流程 |
---
按CVE分类
2024-2025年
| CVE | 影响组件 | 类型 |
|---|---|---|
| CVE-2025-64408 | Apache Causeway | 反序列化 |
2021-2023年
| CVE | 影响组件 | 类型 |
|---|---|---|
| CVE-2021-44228 | Log4j2 | JNDI注入(Log4Shell) |
| CVE-2021-42287/42278 | Active Directory | 域提权 |
| CVE-2021-3156 | sudo | 缓冲区溢出(Baron Samedit) |
| CVE-2021-4034 | polkit | 权限提升(PwnKit) |
| CVE-2022-0847 | Linux Kernel | 文件写入(Dirty Pipe) |
| CVE-2021-22017 | VMware vCenter | 认证绕过 |
2020年及之前
| CVE | 影响组件 | 类型 |
|---|---|---|
| CVE-2020-1472 | Active Directory | 域提权(ZeroLogon) |
| CVE-2019-1040 | Windows | NTLM Relay |
| CVE-2019-8518 | WebKit | 浏览器漏洞 |
| CVE-2016-4437 | Apache Shiro | 反序列化(Shiro-550) |
| CVE-2015-4852 | WebLogic | 反序列化 |
| MS14-068 | Active Directory | Kerberos PAC伪造 |
---
按框架/组件分类
Java生态
| 组件 | 相关案例 | 常见漏洞类型 |
|---|---|---|
| Spring | 10038, 10026 | SpEL注入、反序列化 |
| Struts2 | - | OGNL注入 |
| Shiro | 10144, 10017 | 反序列化、认证绕过 |
| Fastjson | - | AutoType反序列化 |
| WebLogic | 10011 | T3反序列化 |
| Log4j2 | 10102, 10109 | JNDI注入 |
PHP生态
| 组件 | 相关案例 | 常见漏洞类型 |
|---|---|---|
| ThinkPHP | 10092, 10460 | 反序列化、SQL注入 |
| Laravel | 10026, 10088 | 反序列化 |
基础设施
| 组件 | 相关案例 | 常见漏洞类型 |
|---|---|---|
| Redis | - | 未授权访问 |
| MySQL | 10408, 10424 | 站库分离利用 |
| MSSQL | 10403 | 数据库攻防 |
| Docker/K8S | 90733 | 容器逃逸 |
---
按攻击场景分类
边界突破到内网
| 案例ID | 标题 | 攻击路径 |
|---|---|---|
| 10879 | 域渗透之外网打点到三层内网 | 完整攻击链 |
| 11705 | 三层内网下的域渗透 | 多层代理 |
| 11639 | 记一次从linux打进域控 | Linux到域控 |
| 90733 | 记一次从容器到域控的渗透过程 | 容器逃逸 |
红队实战
| 案例ID | 标题 | 核心技术 |
|---|---|---|
| 10032 | 红队攻防之从边界突破到漫游内网(无cs和msf) | 无工具场景 |
| 10074 | 红队攻防之特殊场景上线cs和msf | C2上线技巧 |
| 10080 | 红队攻防之Goby反杀 | 工具对抗 |
| 17774 | 1.6K主机全域沦陷实录 | 大规模攻击 |
---
使用指南
1. 按技术点查找:根据需要研究的漏洞类型查找相关案例 2. 按CVE查找:研究特定漏洞时查找相关分析文章 3. 按框架查找:审计特定框架时参考已有案例 4. 按场景查找:规划攻击路径时参考实战案例
文档路径:/Users/xsser/Downloads/xzdocs_community/{案例ID}.{标题}/
域渗透/内网安全研究方法论
元思考框架
域渗透的本质认知
域渗透的核心是信任关系的滥用:
| 维度 | 核心洞察 |
|---|---|
| 认证机制 | Kerberos/NTLM协议的设计缺陷是攻击的基础土壤 |
| 委派机制 | 权限传递链条的设计为横向移动提供了合法通道 |
| 信任传递 | 域信任关系可被滥用实现跨域攻击 |
| 集中管理 | 域控制器作为单点成为高价值目标 |
攻击者思维模型
边界突破 → 立足点建立 → 信息收集 → 权限提升 → 横向移动 → 域控攻击 → 权限维持
↑ ↓
└────────────────── 持久化后门确保重入 ─────────────────────────────────┘---
信息收集矩阵
域环境基础信息
| 收集目标 | 工具/命令 | 输出价值 |
|---|---|---|
| 域名/域控 | nltest /dclist:domain | 确定攻击目标 |
| 域SID | whoami /user | 票据伪造必需 |
| 域管理员 | net group "Domain Admins" /domain | 高价值目标 |
| 域信任关系 | nltest /domain_trusts | 跨域攻击判断 |
| KRBTGT Hash | lsadump::dcsync /user:krbtgt | 黄金票据制作 |
SPN服务探测
核心洞察:SPN是Kerberos客户端标识服务的唯一方式,基于SPN的服务探测比端口扫描更精准且隐蔽。
setspn -T domain -Q */* # 查询域内所有SPN
setspn -T domain -Q */* | findstr "MSSQLSvc" # 查询MSSQL
Get-NetUser -SPN | Select serviceprincipalname # PowerViewBloodHound关键边缘
| 边缘类型 | 攻击价值 |
|---|---|
HasSession | 用户凭证可能驻留内存 |
AdminTo | 直接本地管理员权限 |
GenericAll | 完全控制对象 |
WriteDacl | 可修改ACL实现提权 |
DCSync | GetChanges+GetChangesAll可导出hash |
---
攻击路径决策树
普通域用户
│
├─── [有SPN注册] ──→ Kerberoasting离线爆破
│
├─── [AS-REP Roastable] ──→ 无预认证攻击
│
├─── [可创建机器账户] ──→ RBCD攻击
│
├─── [存在委派配置] ──→ 委派攻击
│ ├─── 非约束委派: 捕获TGT
│ └─── 约束委派: S4U2Self + S4U2Proxy
│
├─── [ADCS配置不当] ──→ ESC1-ESC15证书攻击
│
└─── [存在漏洞] ──→ CVE利用
├─── MS14-068 (PAC伪造)
├─── CVE-2021-42287/42278 (sAMAccountName欺骗)
└─── CVE-2020-1472 (ZeroLogon)---
横向移动决策
| 场景条件 | 推荐方法 | 端口依赖 |
|---|---|---|
| 拥有明文密码 | PSExec/WMI | 445/135 |
| 仅有NTLM Hash | PTH (Pass-The-Hash) | 445 |
| 拥有Kerberos票据 | PTT (Pass-The-Ticket) | 88 |
| 目标无SMB签名 | NTLM Relay | 445 |
| 目标有WinRM | Evil-WinRM | 5985/5986 |
---
Kerberos攻击矩阵
| 攻击类型 | 前提条件 | 产出 |
|---|---|---|
| AS-REP Roasting | 用户开启"不要求预认证" | 用户明文密码 |
| Kerberoasting | 用户注册有SPN | 服务账户密码 |
| 黄金票据 | 获取KRBTGT Hash | 域管权限 |
| 白银票据 | 获取服务账户Hash | 服务访问权限 |
| MS14-068 | 域控未打KB3011780 | 域管权限 |
---
委派攻击
非约束委派
触发条件: 域管访问配置了非约束委派的机器
利用链: 控制机器 → 触发域控访问(打印机漏洞) → 捕获域控TGT → DCSync约束委派
触发条件: 获取配置了约束委派的账户凭据
利用链: S4U2Self获取票据 → S4U2Proxy转发 → 访问目标服务RBCD (基于资源的约束委派)
触发条件: 可创建机器账户 + 对目标有msDS-AllowedToActOnBehalfOfOtherIdentity写权限
利用链: 创建恶意机器账户 → 修改RBCD属性 → S4U2Self+S4U2Proxy → SYSTEM权限---
持久化技术栈
| 技术 | 隐蔽性 | 持久性 | 前提条件 |
|---|---|---|---|
| 黄金票据 | 高 | 直到KRBTGT改密2次 | KRBTGT Hash |
| 白银票据 | 高 | 直到服务账户改密 | 服务账户Hash |
| AdminSDHolder | 高 | 永久 | 域控权限 |
| SID History | 高 | 永久 | 域控权限 |
| DSRM后门 | 高 | 永久 | 域控权限 |
推荐持久化组合
第一层: 黄金票据(快速恢复域管权限)
第二层: AdminSDHolder(普通用户即可恢复高权限)
第三层: SSP/DSRM(即使票据失效也可捕获新凭证)
第四层: RBCD变种黄金票据(KRBTGT改密也不影响)---
ADCS证书攻击速查
| ESC编号 | 核心配置错误 | 利用效果 |
|---|---|---|
| ESC1 | 模板允许指定SAN + 普通用户可注册 | 申请任意用户证书 |
| ESC4 | 普通用户对模板有写权限 | 修改模板为ESC1 |
| ESC8 | Web Enrollment启用HTTP | NTLM Relay获取证书 |
---
核心洞察
1. 系统性思维:域渗透不是单点突破,而是信任链条的逐级瓦解 2. 杠杆效应:一个委派配置错误可能导致整个域的沦陷 3. 逆向思考:防守方关注的补丁和加固措施,恰恰指明了攻击方向 4. 隐蔽性悖论:最隐蔽的攻击往往利用的是合法的域功能而非漏洞
Fuzzing/漏洞发现方法论
元思考框架
核心认知模型
漏洞发现 = 攻击面识别 + 输入控制 + 状态异常触发 + 可利用性评估
| 阶段 | 核心问题 | 方法论要点 |
|---|---|---|
| 目标选择 | 哪里最可能出问题? | 解析器、协议处理、格式转换、边界条件 |
| 输入构造 | 如何触发异常状态? | 覆盖率引导、字典优化、结构化变异 |
| 崩溃分析 | 这个crash有价值吗? | 从crash到可控、从DoS到RCE的路径 |
| 利用构造 | 如何将异常转化为攻击? | 堆布局、内存结构控制、执行流劫持 |
关键思维转变
从CTF-Pwn到实战的认知跃迁:
- CTF提供明确的增删改查接口,实战需要逆向分析程序中的每一个堆操作
- 实战漏洞往往只能触发一次,需要精确的堆风水和状态控制
- 需要了解整个Linux机制,筛选出可控的堆操作来提升漏洞可用性
---
目标选择策略
高价值目标特征矩阵
| 目标类型 | 价值评估 | 典型场景 |
|---|---|---|
| 解析器类 | ★★★★★ | JSON/XML/YAML/Markdown解析 |
| 协议处理 | ★★★★★ | SSL/TLS、HTTP、DNS |
| 格式处理 | ★★★★☆ | 图片/PDF/视频编解码 |
| 命令行工具 | ★★★★☆ | sudo、系统工具 |
| 库函数API | ★★★☆☆ | 标准库、第三方库 |
目标选择决策流程
1. 识别输入入口点
├── 文件解析 (stdin/file)
├── 网络协议 (socket)
├── 命令行参数 (argv)
└── 环境变量 (envp)
2. 评估复杂度与攻击面
├── 状态机复杂度 → 越复杂越容易出错
├── 边界条件数量 → 边界条件是漏洞温床
└── 历史漏洞记录 → 同类问题往往重复出现
3. 确认可测试性
├── 源码可用性 → 插桩编译可行性
├── 反馈机制 → 覆盖率收集能力
└── 执行效率 → 单次执行时间 < 1秒---
输入构造与变异
覆盖率驱动机制
AFL++核心流程:
源码插桩 → 语料库变异 → 执行收集覆盖率 → 路径反馈优化变异策略
| 变异类型 | 方法 | 适用场景 |
|---|---|---|
| 位翻转 | 随机翻转比特位 | 通用 |
| 字节替换 | 替换为特殊值 | 边界测试 |
| 块操作 | 插入/删除/复制 | 结构变异 |
| 字典变异 | 使用关键词字典 | 协议/格式 |
| 语法变异 | 基于语法树变异 | 结构化输入 |
特殊场景处理
命令行程序Fuzzing(sudo案例):
问题:密码验证、参数控制、程序名切换
解决方案:
1. Patch密码验证函数,返回固定值
2. 使用AFL++的argv-fuzz-inl.h从stdin构建argv
3. 使用AFL_INIT_SET0("sudoedit")控制程序名---
崩溃分析
从crash到可利用
crash分类
│
├─── 空指针解引用 → 通常不可利用
│
├─── 栈溢出 → 控制返回地址 → ROP
│
├─── 堆溢出 → 破坏堆元数据 → 任意写
│
├─── UAF → 控制freed内存 → 代码执行
│
└─── 整数溢出 → 导致其他内存错误ASAN辅助
# 编译时启用
gcc -fsanitize=address -g target.c
# 运行时环境变量
ASAN_OPTIONS=detect_leaks=0:abort_on_error=1---
CVE复现思维
1day分析流程
1. 补丁分析
└─ 对比补丁前后的代码差异
└─ 定位漏洞触发点
2. 环境搭建
└─ 获取漏洞版本
└─ 配置调试环境
3. 触发验证
└─ 构造触发条件
└─ 验证漏洞存在
4. 利用开发
└─ 分析可利用性
└─ 编写exploit补丁分析技巧
- 关注边界检查:新增的长度/范围检查
- 关注初始化:新增的变量初始化
- 关注释放逻辑:新增的内存释放
- 关注权限检查:新增的权限验证
---
Fuzzing工具链
| 工具 | 特点 | 适用场景 |
|---|---|---|
| AFL++ | 覆盖率引导、社区活跃 | 通用Fuzzing |
| libFuzzer | LLVM集成、内存高效 | 库函数 |
| honggfuzz | 多线程、硬件支持 | 多核环境 |
| Peach | 协议建模、状态机 | 网络协议 |
| Boofuzz | Python编写、易扩展 | 网络协议 |
---
核心洞察
1. 目标选择是关键:解析器 > 协议处理 > 命令行工具 2. 状态机复杂度:越复杂越容易出错,边界条件是漏洞温床 3. 覆盖率驱动:AFL++ 插桩→变异→反馈→优化 是核心循环 4. CTF到实战:实战漏洞往往只能触发一次,需精确堆风水 5. 历史漏洞规律:同类问题往往重复出现,关注历史CVE模式
提权/绕过安全研究方法论
元思考框架
提权的本质
提权 = 突破当前权限边界,获取更高权限的访问能力
| 维度 | 核心思路 |
|---|---|
| 内核层 | 利用内核漏洞直接获取SYSTEM/root |
| 服务层 | 利用高权限服务的配置错误 |
| 应用层 | 利用SUID/sudo/服务账户 |
| 配置层 | 利用错误的权限配置 |
---
提权向量识别
Windows提权向量
| 向量类型 | 检查方法 | 利用方式 |
|---|---|---|
| 服务配置错误 | accesschk | 修改服务二进制路径 |
| 弱权限目录 | icacls | DLL劫持 |
| 计划任务 | schtasks /query | 替换任务执行文件 |
| AlwaysInstallElevated | 注册表检查 | 恶意MSI安装 |
| Potato系列 | SeImpersonate权限 | 模拟高权限Token |
| Unquoted Service Path | wmic | 路径劫持 |
Linux提权向量
| 向量类型 | 检查命令 | 利用方式 |
|---|---|---|
| SUID二进制 | find / -perm -4000 | GTFOBins查询 |
| sudo配置 | sudo -l | 命令滥用 |
| Capabilities | getcap -r / | 特权能力滥用 |
| Cron任务 | cat /etc/crontab | 任务劫持 |
| 内核漏洞 | uname -a | 公开exploit |
| Docker逃逸 | docker组成员 | 挂载宿主机 |
内核漏洞提权
| CVE | 影响版本 | 利用效果 |
|---|---|---|
| CVE-2021-3156 (Baron Samedit) | sudo < 1.9.5p2 | root权限 |
| CVE-2021-4034 (PwnKit) | polkit < 0.120 | root权限 |
| CVE-2022-0847 (Dirty Pipe) | Linux 5.8+ | 任意文件写入 |
---
WAF绕过策略
绕过思维模型
WAF检测逻辑 → 找到检测盲区 → 构造绕过payload
↓ ↓ ↓
规则分析 语义差异利用 验证绕过通用绕过技术
| 绕过类型 | 技术手段 |
|---|---|
| 编码绕过 | URL编码、Unicode、HTML实体 |
| 大小写混淆 | UnIoN SeLeCt |
| 注释插入 | sel/**/ect、se%00lect |
| 空白符替换 | %09、%0a、%0d、/**/ |
| 分块传输 | Transfer-Encoding: chunked |
| 参数污染 | ?id=1&id=2 (HPP) |
| 协议层面 | HTTP/2、WebSocket |
特定WAF绕过
| WAF | 已知绕过 |
|---|---|
| Cloudflare | Unicode标准化差异 |
| ModSecurity | 规则配置缺陷 |
| 国产WAF | 编码处理差异 |
---
EDR/AV绕过
免杀技术层次
指令级(等价替换) → 结构级(控制流平坦化) → 数据级(多算法加密) → 噪音注入绕过技术矩阵
| 技术类型 | 实现方式 | 效果 |
|---|---|---|
| 特征码修改 | 等价指令替换、资源修改 | 绕过静态检测 |
| 内存加载 | 无文件落地、反射DLL | 绕过磁盘扫描 |
| 进程注入 | 远程线程、APC注入 | 隐藏恶意代码 |
| 直接系统调用 | syscall直接调用 | 绕过API hook |
| AMSI绕过 | Patch amsi.dll | 绕过脚本检测 |
| ETW绕过 | 禁用ETW日志 | 绕过行为监控 |
进程注入技术
| 技术 | API调用 | 特点 |
|---|---|---|
| 远程线程 | CreateRemoteThread | 经典方法,易被检测 |
| APC注入 | QueueUserAPC | 需要可告警线程 |
| 线程劫持 | SetThreadContext | 不创建新线程 |
| 进程镂空 | NtUnmapViewOfSection | 替换进程映像 |
---
沙箱绕过
沙箱检测六维度
| 检测维度 | 检测方法 | 绕过思路 |
|---|---|---|
| 用户名 | 检测沙箱用户名 | 延迟执行 |
| 调试器 | IsDebuggerPresent | 反反调试 |
| VM痕迹 | 注册表、进程、设备 | 特征清除 |
| 系统资源 | CPU核心、内存、磁盘 | 资源检查 |
| 运行时间 | 系统启动时间 | 时间检查 |
| 父进程 | 进程链检查 | 父进程伪造 |
父进程伪造
// 使用STARTUPINFOEX指定父进程
STARTUPINFOEXW si = { sizeof(si) };
UpdateProcThreadAttribute(si.lpAttributeList,
PROC_THREAD_ATTRIBUTE_PARENT_PROCESS,
&hParentProcess, sizeof(HANDLE), NULL, NULL);---
核心洞察
1. 提权是权限边界的突破:从配置错误到内核漏洞,层层递进 2. WAF绕过靠语义差异:不同组件对同一输入的解析差异 3. 免杀是持续对抗:静态→动态→行为,检测和绕过不断演进 4. 沙箱检测六维度:用户名、调试器、VM、资源、时间、父进程 5. 直接系统调用:绕过用户态hook的终极手段
RCE/持久化安全研究方法论
元思考框架
攻击链思维模型
┌─────────────────────────────────────────────────────────────────┐
│ 攻击链思维模型 │
├─────────────────────────────────────────────────────────────────┤
│ 入口点发现 → 漏洞触发 → 代码执行 → 权限维持 → 隐蔽驻留 │
│ ↓ ↓ ↓ ↓ ↓ │
│ 信息收集 RCE触发 命令执行 持久化 免杀对抗 │
│ 资产测绘 链式利用 内存马 后门 流量混淆 │
└─────────────────────────────────────────────────────────────────┘三层对抗模型
| 层次 | 攻击者视角 | 防御者视角 | 核心矛盾点 |
|---|---|---|---|
| 代码层 | 构造恶意载荷绕过检测 | 静态特征码匹配 | 特征变形 vs 签名更新 |
| 行为层 | 无文件/内存驻留 | 行为监控/RASP | 执行路径隐藏 vs 调用链追踪 |
| 内核层 | Rootkit/eBPF后门 | 完整性校验 | 内核空间 vs 用户空间信任边界 |
---
RCE触发点识别矩阵
Java生态
| 漏洞类型 | 触发点特征 | 代表性漏洞 | 核心利用原理 |
|---|---|---|---|
| 反序列化 | readObject()/ObjectInputStream | CC链、Fastjson | 恶意对象在反序列化时触发getter/setter |
| JNDI注入 | lookup()可控 | Log4j2 CVE-2021-44228 | 远程类加载+工厂类实例化 |
| 表达式注入 | OGNL/SpEL/MVEL解析器 | Struts2、Spring CVE | 表达式引擎的动态求值能力 |
| 模板注入(SSTI) | Thymeleaf/FreeMarker | 若依 SSTI | 预处理阶段的表达式执行 |
Fastjson2 RCE绕过(双代理链)
攻击链路径:
JSONObject.toString()
→ getters()遍历
→ [黑名单检测: TemplatesImpl被拦截]
→ 绕过:JdkDynamicAopProxy代理
→ Templates接口不在黑名单
→ invoke()委托给真实对象
→ TemplatesImpl.getOutputProperties()
→ 恶意字节码加载 → RCE
关键绕过原理:检测逻辑只校验代理接口,不检查被代理的真实对象Node.js/前端生态
| 漏洞类型 | 触发点特征 | 典型案例 |
|---|---|---|
| 原型链污染 | __proto__属性赋值 | Next.js Server Actions |
| 命令注入 | child_process.exec() | 任意命令执行 |
---
内存马类型与注入原理
Java内存马分类体系
Java内存马技术栈
│
┌─────────────────┼─────────────────┐
│ │ │
Web组件型 框架型 Agent型
│ │ │
┌─────┼─────┐ ┌─────┼─────┐ ┌─────┼─────┐
│ │ │ │ │ │ │ │ │
Servlet Filter Listener Controller Interceptor redefine retransform组件生命周期决定注入策略
| 组件类型 | 加载时机 | 注入策略 | 技术实现 |
|---|---|---|---|
| Servlet | 懒加载(首次访问时) | 修改实例化数据即可 | StandardContext.addChild() |
| Filter | 启动时立即实例化 | 需自己实例化并重新触发注册 | filterDef + filterStart() |
| Listener | 启动时实例化+事件驱动 | 注入实例到监听器列表 | addApplicationEventListener() |
获取StandardContext
HttpServletRequest.getServletContext()
→ context (ApplicationContext)
→ context (StandardContext) // 反射获取Agent内存马攻防博弈
JvmtiEnv链结构
│
┌──────────────────────┼──────────────────────┐
│ │ │
no-retransformable retransformable 攻击者注入
jvmti链 jvmti链 的jvmti
│ │ │
普通transformer canRetransform=true 最后执行位置
│ │ │
先执行 后执行 决定隐蔽性核心发现:
- 链末尾位置决定检测可见性
- "借尸还魂"技术:复用已存在的JvmtiEnv,无需新注入Agent
- 保证自己始终在链末尾,修改后自我卸载
Next.js内存马(原型污染)
// Header隐蔽路由(不依赖固定URL)
Accept: image/webp,*/*
Accept-Encoding: gzip, deflate, br, gzipp // 'gzipp'为识别标记
// 技术创新点:
// 1. 修改http.Server.prototype.emit全局拦截请求
// 2. 日志中看起来像正常图片请求
// 3. WAF难以基于路径规则拦截---
Webshell免杀技术栈
JSP免杀
| 技术 | 原理 | 示例 |
|---|---|---|
| 编码绕过 | 使用非标准编码 | pageEncoding="Cp037" (IBM EBCDIC) |
| trimDirectiveWhitespaces | 控制换行影响生成的Java代码结构 | 代码拼接成单行 |
| 特殊闭合 | 类SQL注入的闭合技巧 | 闭合out.write()构造可执行代码 |
PHP免杀(异或+变量函数)
<?php
$_=('%01'^'`').('%13'^'`').('%07'^'`').('%05'^'`').('%20'^'`'); // _GET
@${$_}[_](${$_}[__]); // 等价于 $_GET[_]($_GET[__])多层次免杀技术矩阵
┌─────────────────────────────────────────────────────────────┐
│ 免杀技术层次模型 │
├─────────────────────────────────────────────────────────────┤
│ 指令级 │ 指令等价替换、寄存器重分配 │
├────────┼────────────────────────────────────────────────────┤
│ 结构级 │ 指令序列重组、控制流平坦化 │
├────────┼────────────────────────────────────────────────────┤
│ 数据级 │ 多算法字符串加密(XOR/AES/Base64轮换) │
├────────┼────────────────────────────────────────────────────┤
│ 噪音级 │ 智能垃圾指令插入、死代码注入 │
├────────┼────────────────────────────────────────────────────┤
│ 策略级 │ 策略组合引擎、动态变异、多态生成 │
└────────┴────────────────────────────────────────────────────┘控制流平坦化
原始控制流: 平坦化后:
↓ ↓
func1() ┌─ dispatcher ─┐
↓ │ switch(state) │
func2() │ case 1: func1() │
↓ │ case 2: func2() │
func3() │ case 3: func3() │
└──────────────────┘
效果:绕过微步、360云沙箱等检测---
持久化决策矩阵
Linux持久化技术
| 技术 | 隐蔽性 | 持久性 | 检测方法 |
|---|---|---|---|
| 添加root用户 | 低 | 高 | 检查/etc/passwd |
| SSH公钥注入 | 中 | 高 | 检查authorized_keys |
| 计划任务 | 低 | 高 | crontab -l |
| LD_PRELOAD劫持 | 高 | 高 | strace检查预加载文件 |
| 内核模块Rootkit | 极高 | 极高 | unhide工具 |
| eBPF后门 | 极高 | 高 | 需要内核级检测 |
eBPF后门技术(SSH密钥劫持)
攻击流程:
1. Hook read系统调用入口(sys_enter_read)
2. 记录进程名为sshd的read调用参数
3. 在read返回时(sys_exit_read)检查buffer内容
4. 如果包含"ssh-rsa",替换为攻击者公钥
5. 实现免密登录后门
技术优势:
- 运行在内核沙箱中,稳定安全
- 无文件落地,难以检测
- 需要较高版本内核支持持久化选择决策树
目标环境
│
┌─────────────┼─────────────┐
│ │ │
Windows Linux 容器
│ │ │
┌────┼────┐ ┌────┼────┐ ┌────┼────┐
│ │ │ │ │ │ │ │ │
域环境 单机 云 内核高 内核低 K8s Docker
│ │ │ │ │ │ │ │
DCSync 注册表 RDP后门 eBPF SSH后门 挂载卷 镜像投毒
委派攻击 服务 IAM 模块 定时任务 sidecar---
Rootkit技术层次
| 层次 | 技术 | 隐蔽能力 | 开发难度 |
|---|---|---|---|
| 用户态 | LD_PRELOAD Hook | 中 | 低 |
| 系统调用 | ptrace注入、syscall Hook | 高 | 中 |
| 内核模块 | LKM Rootkit (Diamorphine) | 极高 | 高 |
| eBPF | BCC/libbpf Hook | 极高 | 中 |
| 固件级 | UEFI Rootkit | 最高 | 极高 |
LD_PRELOAD劫持检测
# 常规检测
strace -f /bin/ls 2>&1 | grep preload
# 对抗方法:使用busybox(静态编译,不受劫持影响)
./busybox ls---
核心规律提炼
规律一:复杂度即机会
- 功能越多,攻击面越大
- 解析器/引擎是RCE高发区
规律二:时序决定可见性
- 先加载的检测后加载的修改
- 内存马检测的本质是时序竞争
规律三:抽象层越高,防御越难
- 内核态对用户态天然不可见
- eBPF/Rootkit难以用常规手段检测
规律四:特征变形vs行为本质
- 静态特征可无限变形
- 行为才是恶意软件的本质
- 最终防御应基于行为而非签名
---
代表性案例索引
| 文档编号 | 主题 | 核心技术点 |
|---|---|---|
| 90691 | 传统Web内存马 | Servlet/Filter/Listener生命周期 |
| 12556 | Agent内存马攻防 | JvmtiEnv链、借尸还魂 |
| 90788 | Next.js内存马 | 原型污染+HTTP劫持 |
| 18941 | JSP免杀 | 解析流程漏洞利用编码差异 |
| 90717 | 特征码免杀 | 控制流平坦化 |
| 12135 | eBPF后门 | SSH密钥劫持 |
| 90711 | Fastjson2 RCE | 双代理链绕过黑名单 |
| 90768 | 若依SSTI | Thymeleaf预处理绕过 |
红队攻防/CTF方法论
红队攻防思维
完整攻击链
边界突破 → 权限提升 → 内网穿透 → 横向移动 → 域控攻击 → 权限维持
↓ ↓ ↓ ↓ ↓ ↓
Web漏洞 Potato系 代理隧道 密码复用 Zerologon 黄金票据
服务CVE Mimikatz Stowaway PTH/PTT krbtgt 持久化各阶段核心技术
阶段一:边界突破
| 入口类型 | 利用方式 | 工具/技术 |
|---|---|---|
| Web漏洞 | SQL注入写Shell、文件上传 | SQLMap、蚁剑 |
| 服务漏洞 | Redis未授权、CVE利用 | 备份文件写Shell |
| 社工钓鱼 | 宏文件、伪装程序 | Office宏、捆绑木马 |
阶段二:权限提升
- Windows:Potato系列提权、PsExec提升至SYSTEM
- Linux:SUID、sudo配置、内核漏洞
- 密码抓取:Mimikatz抓取明文/Hash
阶段三:内网穿透
| 技术 | 工具 | 特点 |
|---|---|---|
| HTTP隧道 | reGeorg、Neo-reGeorg | Web服务器做代理 |
| SOCKS代理 | EarthWorm、Stowaway | 多级代理 |
| DNS隧道 | dnscat2 | 隐蔽性高 |
| ICMP隧道 | pingtunnel | 绕过防火墙 |
阶段四:横向移动
核心洞察:"内网里的服务器账号密码有部分可能是相同的" —— 经验驱动的横向移动思维
| 凭据类型 | 攻击方式 |
|---|---|
| 明文密码 | PSExec、WMI、RDP |
| NTLM Hash | PTH (Pass-The-Hash) |
| Kerberos票据 | PTT (Pass-The-Ticket) |
阶段五:域控攻击
- CVE-2020-1472 (ZeroLogon):置空域控机器账户NTLM Hash
- CVE-2021-42287/42278:sAMAccountName欺骗
- 黄金票据:获取krbtgt的NTLM Hash制作永久后门
无CS/MSF场景的替代
问题:目标不出网,无法使用常规C2
替代方案:
├── 正向连接木马(目标不出网时)
├── certutil远程下载
├── 原生Windows工具利用(Living off the Land)
└── PowerShell Empire内存执行---
CTF解题思维
核心思维模式
| 阶段 | 思维要点 | 关键动作 |
|---|---|---|
| 信息识别 | 快速定位题目类型和考点 | 识别关键词、版本号、技术栈 |
| 攻击面枚举 | 穷举所有可能的攻击向量 | 目录扫描、源码泄露、已知漏洞 |
| 链式突破 | 多个小漏洞串联成完整攻击链 | SSRF→RCE、SQL注入→后台→上传 |
| 逆向验证 | 从结果反推过程 | 密文逆向、协议分析 |
分类解题方法论
Web方向
- 路径穿越:
../../构造访问非预期资源 - 编码绕过:双重URL编码、Unicode编码
- 序列化攻击:Phar反序列化、Fastjson
- 代码审计链:源码泄露 → 路由分析 → 危险函数 → Payload
Crypto方向
| 攻击类型 | 关键技术 |
|---|---|
| LCG攻击 | 已知输出恢复a、b、m参数 |
| MT19937预测 | 收集624个输出,RandCrack预测 |
| LFSR分析 | B-M算法恢复mask |
| RSA攻击 | 小指数、共模、Wiener |
Pwn方向
- 栈溢出 → ROP → ret2libc/ret2syscall
- 堆利用 → tcache poisoning → 任意地址分配
- 格式化字符串 → 任意读写
---
云安全攻防
对象存储(S3/OBS)攻击面
1. Bucket暴力猜解(NoSuchBucket vs AccessDenied)
2. 对象遍历(ListBucket权限泄露)
3. ACL策略可写(Everyone写ACL)
4. 策略冲突(桶策略与桶ACL配置不一致)关键发现:
--no-sign-request参数可绕过某些认证检查- X-Forwarded-For可绕过IP限制的ListBucket
- Referer头部Fuzzing绕过防盗链
IAM安全挑战
Cognito身份池利用:
# 获取身份ID
aws cognito-identity get-id --identity-pool-id "us-east-1:xxx"
# 获取临时凭据
aws cognito-identity get-credentials-for-identity --identity-id "xxx"K8S云原生渗透
攻击路径:
普通用户 → 创建Pod(挂载hostPath) → Node权限 → 容忍度绕过 → Master权限核心技术:
- hostPath挂载Node根目录
- tolerations绕过Master污点(Taints)
- kubeconfig配置文件利用
---
应急响应方法论
标准化排查流程
日志分析 → 异常账户 → 恶意文件 → 后门清除 → 加固修复关键排查点
| 排查项 | 位置/命令 | 关注内容 |
|---|---|---|
| Web日志 | access.log | 异常请求路径、攻击IP |
| 隐藏账户 | lusrmgr.msc、注册表 | 以$结尾的账户 |
| 计划任务 | 任务计划程序库 | 异常执行 |
| 进程分析 | 任务管理器 | CPU异常占用 |
| 网络连接 | netstat -ano | 异常外联IP |
---
核心洞察
1. 链式思维:单个漏洞价值有限,漏洞链才能完成完整攻击 2. 经验驱动:"内网密码复用"是横向移动的重要经验判断 3. 无工具场景:无CS/MSF时用certutil+正向连接替代 4. 云原生攻击面:K8S的hostPath+tolerations是新突破口 5. 隐蔽性悖论:最隐蔽的攻击利用合法功能而非漏洞
逆向分析安全研究方法论
元思考框架
逆向分析的本质
逆向分析 = 信息熵降低过程:将未知二进制行为映射到已知模式库
| 维度 | 核心问题 |
|---|---|
| What | 程序做了什么? |
| Why | 为什么这样设计? |
| How | 如何实现的? |
| Who | 谁是目标/作者? |
分析策略决策树
样本获取 → 初步分类 → 策略选择 → 深入分析 → 行为提取 → 规则编写
↓
┌────────────┐
│ 静态优先? │
│ 动态优先? │
│ 混合分析? │
└────────────┘---
样本分类决策
文件头魔数识别
| 魔数 | 文件类型 |
|---|---|
MZ (4D 5A) | Windows PE |
ELF (7F 45 4C 46) | Linux ELF |
PK (50 4B) | ZIP/APK/DOCX |
%PDF | |
d8 ff | JPEG |
查壳与编译器识别
| 工具 | 用途 |
|---|---|
| DIE (Detect It Easy) | 壳识别、编译器识别 |
| PEiD | 经典PE查壳 |
| ExeInfo PE | PE信息分析 |
| PEID signatures | 自定义签名 |
恶意行为模式速查
| 行为类别 | 典型API/特征 |
|---|---|
| 进程注入 | VirtualAllocEx, WriteProcessMemory, CreateRemoteThread |
| 持久化 | RegSetValueEx, CreateService, 计划任务 |
| 信息窃取 | 剪贴板、键盘钩子、屏幕截图 |
| 网络通信 | socket, WinHTTP, WinINet |
| 反调试 | IsDebuggerPresent, NtQueryInformationProcess |
---
分析策略选择
静态分析思维框架
1. 字符串提取 → 快速定位关键功能
2. 导入表分析 → 判断程序能力
3. 函数识别 → 定位关键代码
4. 控制流分析 → 理解程序逻辑
5. 数据流分析 → 追踪敏感数据动态调试策略
| 文件类型 | 调试方法 | 注意事项 |
|---|---|---|
| EXE | 附加进程 | 绕过TLS回调反调试 |
| ELF | linux_server远程调试 | 配置调试选项 |
| APK | 添加debuggable属性 | 重打包签名 |
工具链组合
| 场景 | 推荐组合 |
|---|---|
| PE分析 | IDA Pro + x64dbg + Process Monitor |
| ELF分析 | IDA Pro + GDB + strace |
| APK分析 | jadx + Frida + adb |
| .NET分析 | dnSpy + ILSpy |
| Python打包 | pyinstxtractor + uncompyle6 |
---
反混淆思维
常见混淆技术与对抗
| 混淆类型 | 对抗方法 |
|---|---|
| 字符串加密 | 动态调试提取、模拟执行 |
| 控制流平坦化 | 符号执行、模式识别 |
| 不透明谓词 | 数据流分析、常量传播 |
| 虚拟机保护 | opcode还原、z3求解 |
VM类保护分析方法
三条路径:
1. opcode还原(传统)
- 分析VM入口、dispatcher、handler
- 逐个识别虚拟指令含义
- 还原原始逻辑
2. z3约束求解(数学)
- 将VM执行建模为约束
- 使用SMT求解器求解
- 适合简单变换
3. 插桩爆破(侧信道)
- Unicorn模拟执行
- 逐字符爆破输入
- 根据执行路径差异判断
OLLVM反混淆范式
Triton符号执行 → AST提取 → Z3/AI化简 → 算法还原---
沙箱绕过六维度
恶意软件常用的沙箱检测技术:
| 维度 | 检测方法 | 绕过特征 |
|---|---|---|
| 用户名 | 检测沙箱常用用户名 | "sandbox", "malware", "virus" |
| 调试器 | IsDebuggerPresent, PEB | BeingDebugged标志 |
| VM痕迹 | 注册表、进程、服务 | VMware Tools, VBox Guest |
| 系统资源 | CPU核心数、内存、磁盘 | 资源过少说明是虚拟环境 |
| 启动时间 | 系统运行时间检测 | 沙箱通常刚启动 |
| 父进程 | 检测父进程合法性 | explorer.exe vs 分析工具 |
---
脱壳方法论
通用脱壳方法
| 方法 | 原理 | 适用场景 |
|---|---|---|
| ESP定律 | 栈平衡定位OEP | 压缩壳 |
| 内存断点 | 代码段执行断点 | 大多数壳 |
| API断点 | GetProcAddress等 | IAT恢复 |
| 单步跟踪 | F7/F8逐步执行 | 简单壳 |
| 硬件断点 | DR寄存器断点 | 反软件断点的壳 |
| 脚本脱壳 | OD/x64dbg脚本 | 已知壳 |
| Dump+修复 | 内存Dump+IAT修复 | 通用 |
---
免杀技术层次
指令级 → 结构级 → 数据级 → 噪音注入
↓ ↓ ↓ ↓
等价替换 控制流平坦化 多算法加密 垃圾代码| 层次 | 技术 | 效果 |
|---|---|---|
| 指令级 | 等价指令替换、寄存器轮换 | 改变特征码 |
| 结构级 | 控制流平坦化、函数拆分 | 改变代码结构 |
| 数据级 | 字符串加密、资源加密 | 隐藏敏感数据 |
| 噪音注入 | 垃圾代码、花指令 | 干扰分析 |
---
C2通信分析
通信协议识别
| 协议类型 | 识别特征 |
|---|---|
| HTTP(S) | 标准端口、HTTP头 |
| DNS隧道 | 异常DNS查询频率、长子域名 |
| ICMP隧道 | 异常ICMP数据长度 |
| 自定义TCP/UDP | 非标准端口、自定义包结构 |
加密通信分析
1. 定位加密函数:断点CryptEncrypt、SSL_write等 2. 提取密钥:内存搜索、动态调试 3. 协议逆向:分析包结构、字段含义
---
核心洞察
1. 逆向是信息熵降低:将未知映射到已知模式库 2. VM对抗三路径:opcode还原、z3约束、插桩爆破各有适用场景 3. 动态调试精髓:EXE附加绕TLS,ELF远程调试,APK加debuggable 4. AI辅助逆向:Triton + Z3 + AI 是 OLLVM 反混淆现代范式 5. 沙箱六维度:恶意软件的标配检测,需逐一识别分析
Web注入类安全研究方法论
元思考框架
核心认知模型
┌─────────────────────────────────────────────────────────────────┐
│ 安全研究思维金字塔 │
├─────────────────────────────────────────────────────────────────┤
│ L4: 防御反推 ← 从补丁/过滤规则反推绕过点 │
│ L3: 边界探索 ← 在已知攻击面上寻找corner case │
│ L2: 假设验证 ← 构建推理链条,逐步验证假设 │
│ L1: 攻击面识别 ← 寻找数据与指令不分离的接口 │
└─────────────────────────────────────────────────────────────────┘关键思维原则
| 原则 | 描述 | 应用场景 |
|---|---|---|
| 数据指令分离失效 | 漏洞本质是用户数据被当作指令执行 | SQL注入、命令注入、模板注入 |
| 信任边界突破 | 找到信任传递链中的薄弱环节 | JNDI注入、反序列化 |
| 语义差异利用 | 不同组件对同一输入的解析差异 | WAF绕过、协议层面绕过 |
| 版本差异敏感 | 同一组件不同版本的安全机制差异 | 高版本绕过研究 |
---
攻击面识别模式
SQL注入识别
输入点特征: 1. 参数直接拼接SQL语句的位置 2. 动态表名/列名/排序字段 3. 批量操作接口(IN子句) 4. 搜索/过滤功能 5. 文件名/路径参数被存入数据库
快速验证序列:
-- 闭合探测
?id=1' -- 单引号闭合
?id=1" -- 双引号闭合
?id=1') -- 带括号闭合
?id=1\ -- 转义符探测
-- 布尔差异验证
?id=1' or 1=1# -- 真条件
?id=1' and 1=2# -- 假条件
?id=1' and sleep(5)# -- 时间差异数据库指纹:
| 数据库 | 特征 |
|---|---|
| MySQL | information_schema、load_file、into outfile |
| MSSQL | 堆叠注入、xp_cmdshell、CONVERT报错 |
| Oracle | dual表、DBMS_PIPE延时、UTL_HTTP外带 |
| PostgreSQL | pg_sleep、COPY命令 |
JNDI注入识别
触发点特征:
InitialContext.lookup(userInput)
Context.lookup(userInput)
JndiTemplate.lookup(name) // Spring版本边界(关键):
| 限制类型 | JDK版本 |
|---|---|
| RMI远程加载限制 | 6u132, 7u122, 8u113 |
| LDAP远程加载限制 | 11.0.1, 8u191, 7u201, 6u211 |
模板注入(SSTI)识别
Jinja2探测:
{{config}} # Flask配置对象
{{request}} # 请求对象
{{[].__class__.__base__.__subclasses__()}} # 类链探测Thymeleaf触发:
viewName包含::时解析为片段表达式
__${expression}__::x # 预处理表达式命令注入识别
高危功能点:
- ping/trace测试功能
- 文件操作接口(压缩、解压)
- 系统管理接口
- 定时任务配置
- 外部程序调用接口
截断符:; | || && & \ $() %0a %0d`
---
WAF绕过策略树
┌─ 大小写混写: UnIoN SeLeCt
├─ 双写绕过: uniunionon
关键字过滤 ─┼─ 编码绕过: hex/base64/char()
├─ 注释插入: un/**/ion
└─ 同义替换: || 代替 or
┌─ ${IFS}系列: cat${IFS}file
├─ 注释符: select/**/database()
空格过滤 ──┼─ 括号嵌套: select(database())
├─ 换行符: %0a %0d
└─ 反引号: `select`
┌─ 宽字节注入: %df%27
引号过滤 ──┼─ 反斜杠逃逸: admin\' and password='
└─ 十六进制: 0x61646D696E
┌─ from...for: substr(x from 1 for 1)
逗号过滤 ──┼─ offset: limit 1 offset 2
└─ join别名技术---
Corner Case 思维
编码层面
- 双重URL编码
- Unicode变体(%u0027)
- 宽字节(GBK环境 %df%27)
语法层面
- 注释嵌套
/*!50000select*/ - 科学计数法
1e0union - 浮点数
1.0union
协议层面
- HTTP参数污染
- 分块传输编码
- Content-Type混淆
---
代表性案例索引
| 技术类型 | 案例ID | 核心技术点 |
|---|---|---|
| SQL注入 | 10041, 10042 | MySQL注入姿势、绕过总结 |
| JNDI注入 | 90682, 17638 | 高版本JDK绕过 |
| SSTI | 10527, 17440 | Jinja2/Thymeleaf利用 |
| 命令注入 | 13269, 15509 | 截断符与绕过 |
Related skills
How it compares
Use a research methodology skill instead of ad-hoc “give me exploits” chat without attack-surface or sanitizer reasoning.
FAQ
Who is vuln-research for?
Security-minded developers, auditors, and red-team learners who want agent-guided frameworks for lawful vulnerability research and code review.
When should I use vuln-research?
During ship security reviews, build-time code audit, operate incident forensics, CTF practice, or whenever triggers like 漏洞挖掘, WAF bypass, or Source-Sink analysis apply.
Is vuln-research safe to install?
The skill is instructional text; confirm authorization for any live testing and review the Security Audits panel on this page before installing third-party skills.