nuclei 是什么
nuclei 是基于 YAML 模板的检测工具,用模板做针对性核查:暴露文件、错误配置、已知问题的验证等。它的优势是模板可读、结果结构清晰、能按标签与严重级别筛选,适合在授权范围内做快速核查。模板命中只代表「符合特征」,结论仍需与资产实际版本和路径核验。
基本信息
| 适用平台 | Linux/macOS/Windows 命令行 |
|---|---|
| 输入 | -u 单目标、-l 目标列表 |
| 模板来源 | 官方 nuclei-templates 仓库,可 -update-templates 更新 |
| 输出 | -o 文本、-jsonl 结构化(便于入库) |
| 合规前提 | 仅对已获授权的目标执行 |
基础命令
基础命令
nuclei -u https://example.com -severity critical,high,medium -o nuclei-out.txt # 单目标,按级别过滤
nuclei -l targets.txt -severity critical,high -jsonl -o out.jsonl # 批量目标,结构化输出
nuclei -u https://example.com -tags exposure,misconfig # 只跑指定标签
nuclei -update-templates # 先更新模板再扫描,避免用旧模板
nuclei -u https://example.com -rate-limit 50 -c 10 # 限速与并发,降低对业务的影响常用参数
| -u / -l | 单目标 / 目标列表文件 |
|---|---|
| -severity | 按严重级别过滤模板 |
| -tags | 按模板标签筛选(cve/exposure/misconfig 等) |
| -o / -jsonl | 文本输出 / JSONL 结构化输出 |
| -rate-limit / -c | 全局速率限制 / 并发数 |
典型使用场景
- 应急核查:新漏洞披露后先跑对应 CVE 模板,确认资产是否命中
- 暴露面巡检:用 exposure 类标签定期检查敏感文件与配置泄露
- 上线前检查:对新域名跑一遍高危模板作为基线
- 内网资产抽查:结合目标列表核对已知服务的配置问题
- 复测验证:修复后用同一模板与同一版本重跑,确认命中共鸣消失
模板默认存放在 ~/nuclei-templates,可先执行 nuclei -update-templates 更新。扫描时记录模板版本与执行时间,便于后续复现与对比。
对生产系统批量跑模板前先约定速率与窗口:模板数量多、并发高时产生的请求量可能触发 WAF 拦截或影响业务,源 IP 也可能被封禁导致后续结果缺失。
结果处理要点
| 环节 | 做法 | 原因 |
|---|---|---|
| 命中复核 | 回看模板内容与实际响应,确认不是环境差异导致 | 模板按特征匹配,存在误报 |
| 证据留存 | 保存请求、响应与时间戳(脱敏) | 便于复现与派单 |
| 去重 | 同一模板同一目标只保留一条 | 重复导入会污染清单 |
| 复测 | 用同一模板版本与参数重跑 | 保证前后可比 |