模板治理为什么重要
nuclei 的结论质量几乎完全取决于模板:公开模板更新频繁,同一批目标在不同模板版本下检出结果会不一样。规范做法是固定模板版本并记录使用清单,命中逐条人工复核请求与响应证据,自研模板先做语法校验与同行评审再入库。
基本信息
| 版本控制 | 记录模板 tag 或 commit,评估期间不随意升级 |
|---|---|
| 复核 | 每条命中查看请求与响应证据,判定是否成立 |
| 自研模板 | -validate 校验语法,同行评审后入库 |
| 报告口径 | 只写复核后结论,原始命中作为附件 |
| 误报处理 | 建立误报清单,复测时用同一清单比对 |
典型使用场景
- 批量暴露面核查:用固定模板集对大量资产做一致性检查
- 版本回归:升级模板库前后跑同一目标,对比新增与消失的命中
- 自研检测需求:针对客户特有组件编写模板,先小范围验证再全量
- 复测:沿用同一模板版本,保证前后结论可比
- 证据留档:把命中附带的请求与响应存入证据目录,标注模板版本
治理动作示例
治理动作示例
# 了解当前模板库规模,作为清单基线
nuclei -tl | wc -l
# 自研模板先做语法校验,避免运行期报错
nuclei -validate -t custom/check-exposure.yaml
# 小范围验证自研模板,限制并发便于人工观察
nuclei -t custom/ -tags custom -ms 3 -debug
# 输出 JSON 留档,便于逐条复核与统计
nuclei -l targets.txt -t custom/ -jsonl -o nuclei-hits.jsonl命中逐列复核读法
| 字段 | 含义 | 复核要点 |
|---|---|---|
| template-id | 命中的模板标识 | 确认模板用途与版本,避免同名混淆 |
| matched-at | 命中 URL | 确认在授权范围内,排除第三方跳转 |
| extracted-results | 模板提取到的内容 | 判断是否真有敏感信息,还是页面文案 |
| curl-command | 可复现请求 | 手工重放确认真实性后再入报告 |
| matcher-name | 触发判定的匹配器 | 字符串匹配类判定最容易误报 |
模板命中只是线索:未经复核的命中不得直接作为漏洞条目录入报告,否则误报会成倍放大。
评估期间固定模板版本比用最新版更重要:中途升级会让前后两轮结果无法比较,复测也难以说明差异来源。