一键导入
trace-sink
从 Sink 点反向追踪调用链至 HTTP 入口。读取 sinks.json,对每个 Sink 使用 JetBrains 引用查找递归追踪调用者,分析参数传递和过滤情况,判断参数可控性。用于:漏洞调用链追踪、反向污点分析。触发词:trace sink、反向追踪、调用链分析、sink 追踪、Phase 4。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
从 Sink 点反向追踪调用链至 HTTP 入口。读取 sinks.json,对每个 Sink 使用 JetBrains 引用查找递归追踪调用者,分析参数传递和过滤情况,判断参数可控性。用于:漏洞调用链追踪、反向污点分析。触发词:trace sink、反向追踪、调用链分析、sink 追踪、Phase 4。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Java 项目鉴权分析。Step 1 使用 JetBrains 工具查找所有 Filter、Interceptor 及安全框架配置,分析作用范围和执行顺序。Step 2 逐个分析路由端点的鉴权状态,按 preauth/postauth 分类输出。用于:鉴权架构分析、未授权端点发现。触发词:analyze auth、鉴权分析、认证分析、filter interceptor、Phase 2。
漏洞深度验证。对 trace-sink 和 trace-preauth 发现的调用链进行二次验证,确认调用链完整性和漏洞成立条件,生成 HTTP PoC,按利用效果和前置条件进行漏洞评分。用于:漏洞确认、PoC 生成、漏洞评级。触发词:deep verify、深度验证、漏洞验证、PoC 生成、Phase 6。
Java 项目路由端点发现。使用 JetBrains 工具查找所有 Controller、Servlet、JSP、RPC 服务、JAX-RS、WebSocket 端点,输出路由类清单 JSON。用于:Java 审计路由发现、攻击面枚举。触发词:find route、路由发现、路由搜索、endpoint discovery、Phase 1。
Java 项目漏洞 Sink 点搜索。在代码库中系统性搜索 12 类漏洞的 Sink 点(反序列化、JNDI注入、表达式注入、命令注入、SQL注入、任意类实例化、不安全反射、JDBC攻击、文件上传、ZipSlip、任意文件读取、硬编码敏感信息),确认利用条件后输出 Sink 清单。触发词:find sink、漏洞搜索、sink 分析、sink search、Phase 3。
Java 代码审计标准化报告生成。汇总 Phase 0-6 所有中间产物(recon.md、routes.json、auth-analysis.md、sinks.md、trace-sink.md、trace-preauth.md、vulnerabilities.json、deep-verify.md),生成结构化的最终审计报告。用于:审计报告输出、漏洞汇总。触发词:gen report、生成报告、审计报告、report generation、Phase 7。
Java 代码安全审计主编排器。执行 Phase 0 项目侦察(激活项目、架构分析、框架识别、攻击面识别),声明反幻觉铁律,然后按序调度子 skill 完成完整审计流程。用于:Java 安全审计、代码审计、漏洞挖掘。触发词:java audit、代码审计、安全审计、java 安全分析。
| name | trace-sink |
| description | 从 Sink 点反向追踪调用链至 HTTP 入口。读取 sinks.json,对每个 Sink 使用 JetBrains 引用查找递归追踪调用者,分析参数传递和过滤情况,判断参数可控性。用于:漏洞调用链追踪、反向污点分析。触发词:trace sink、反向追踪、调用链分析、sink 追踪、Phase 4。 |
find-sink 发现的 Sink 点进行反向调用链追踪java-audit Phase 4 被调度执行find-sinktrace-preauth.audit/sinks.json 已存在(由 find-sink 生成)1. 调用链每一跳必须通过 jet_brains_find_referencing_symbols 或 jet_brains_find_symbol 实际确认
2. 每一跳必须标注 文件路径:行号
3. 参数传递关系必须从代码中读取确认,不得推测
4. 无法确认的链路标记为 [Hypothesis]
读取 .audit/sinks.json,获取所有 Sink 点列表。按 confidence 从 high 到 low 排序处理。
对每个 Sink 执行:
获取 Sink 方法详情
jet_brains_find_symbol(method_name, include_body=true) 获取完整代码查找调用者(第 1 跳)
jet_brains_find_referencing_symbols(symbol=method_name) 找到所有调用位置jet_brains_find_symbol(include_body=true) 读取方法体递归追踪(第 2–5 跳)
jet_brains_find_referencing_symbols 查找上层调用者参数流分析 在每一跳中检查:
与鉴权状态交叉
.audit/preauth-routes.json 中 → 标记 preauth 可达输出 .audit/trace-sink.md:
# Sink 反向追踪报告
## SINK-001: SQL注入 - UserDao.findByName
**Sink**: `UserDao.findByName()` at `UserDao.java:42`
**Sink 代码**: `String sql = "SELECT * FROM user WHERE name = " + name;`
**漏洞类型**: SQL 注入
**调用链**:
1. [HTTP Entry] `UserController.search()` at `UserController.java:28`
- 参数来源: `request.getParameter("name")` → `name`
↓
2. `UserService.searchUser(name)` at `UserService.java:55`
- 参数传递: `name` → `name` (直接传递,未过滤)
↓
3. [SINK] `UserDao.findByName(name)` at `UserDao.java:42`
- SQL拼接: `"SELECT * FROM user WHERE name = " + name`
**参数可控性**: 完全可控
**防护措施**: 无
**鉴权状态**: postauth (需要登录)
**状态**: [Confirmed] / [Hypothesis]
---