为什么要压速率
nuclei 的默认并发对小型目标偏激进,直接扫生产系统容易触发防护封禁,也会造成业务抖动。稳态扫描的做法是压低请求速率与并发:用每秒请求数上限控制整体压力,用并发模板数控制瞬时并发,再配合合理的单请求超时,避免个别慢响应目标拖住整个扫描窗口。
基本信息
| 工具 | nuclei(ProjectDiscovery) |
|---|---|
| 关键参数 | -rl 每秒请求数上限、-c 并发模板数、-timeout 单请求超时、-retries 失败重试次数 |
| 观察手段 | -stats 实时查看进度与错误率 |
| 输出控制 | -severity 按等级过滤,-o 写结果文件 |
| 前置要求 | 明确授权范围与执行时间窗口 |
| 联动要求 | 与业务监控联动,触发告警先暂停扫描 |
参数与取值建议
| 参数 | 作用 | 建议取值 |
|---|---|---|
| -rl | 每秒请求数上限 | 生产站点从 20 至 30 起步 |
| -c | 并发执行的模板数 | 小型目标 5 至 10 |
| -timeout | 单请求超时秒数 | 5 至 10,避免长尾任务 |
| -retries | 失败重试次数 | 适度提高可减少抖动导致的漏报 |
| -severity | 按等级筛选模板 | 先跑 critical 与 high |
| -stats | 实时统计输出 | 错误率异常升高说明对端在限流 |
稳态扫描参数
稳态扫描参数
nuclei -u https://example.com \
-rl 30 -c 10 -timeout 8 \
-severity critical,high,medium \
-stats -o out.txt
# -stats 观察进度与错误率,异常升高说明目标侧在限流或抖动
# 目标较多时用 -l targets.txt 并配合全局 -rl 限速
# 触发业务告警时先暂停扫描,与业务确认后再决定是否降速继续典型使用场景
- 生产系统例行漏洞扫描的速率设定
- 上线前的针对性核查(窗口短,需平衡速度与影响)
- 演练期间对目标清单的批量检查
- 模板库升级后的回归扫描
- 扫描出口被 WAF 封禁时的排查与调整
- 与业务监控联动,动态调整扫描强度
扫描速率要和业务监控联动:触发告警时先暂停扫描、与业务确认,再决定是否降速继续,这个流程比参数本身更重要。
用默认并发扫生产站,容易让出口 IP 被 WAF 封禁:后续所有扫描请求都会被拦截,结果看起来「很干净」,实际上是全被挡掉了。