v3.2.8
1. [新增] brute 暴力扫描模式
用于目录探测、凭证枚举等场景,减少重复规则维护:
- 两种枚举策略:
clusterbomb:笛卡尔积组合(适合小字典)pitchfork:按索引配对(适合一一对应的字典)
- 结果提交策略:
commit: winner/first:保留首个命中结果commit: last:保留最后一次命中结果commit: none:只保留请求/响应
- 继续策略:
continue: true/false:命中后是否继续枚举
- 保护机制:
--brute-max-requests 5000:限制单条规则最大请求数
2. [新增]按目标限速(--req-limit-per-target)
对每个 host:port 单独限制每秒请求数:
| 参数 | 等效设置 | 适用场景 |
|---|---|---|
--polite |
--req-limit-per-target=5 |
保守模式,怕打挂目标 |
--balanced |
--req-limit-per-target=15 |
默认推荐,平衡模式 |
--aggressive |
--req-limit-per-target=50 |
激进模式,追求速度 |
注意:与 -rl/--rate-limit 不冲突:
-rl:限制任务调度速度(PoC×Target 级别)--req-limit-per-target:限制实际网络请求速度(host:port 级别)
3. [新增]实时状态监控(--live-stats)
开启后显示关键指标:
ta:活跃任务数hi:进行中的HTTP请求数tw:任务等待时间(全局限速排队)rw:请求等待时间(目标限速排队)
判断依据:
tw大 → 被全局限速卡住rw大 → 被单目标限速卡住(同一个站点请求太密)
4. 快速配置推荐
场景A:单目标/目标很少
- 保守:
--req-limit-per-target 2+-c 5~10 - 均衡:
--req-limit-per-target 5+-c 10~20 - 激进:
--req-limit-per-target 10+-c 20~40
场景B:10~50个目标,较分散
- 均衡:
--req-limit-per-target 5+-c 40~80
场景C:50~500+个目标,很分散
- 均衡:
--req-limit-per-target 5+-c 80~200
场景D:目标集中在少数IP(CDN/反代)
- 按场景A配置
5. 使用建议
- 开启监控:始终添加
--live-stats - 观察指标:如果
rw持续上千ms,降低-c值 - 默认起手:
--req-limit-per-target 5+-c 20 - 自动调节:可使用
--auto-req-limit自动调参
6. [优化]Go PoC HTTP请求统一化
- 背景:之前Go编写的PoC和YAML格式的PoC在HTTP请求处理上不一致
- 改进内容:
- 全局header统一合并:确保所有请求都正确应用全局设置的headers
- 变量回填统一:变量传递和处理逻辑保持一致
- 上下文贯穿:PoC级别的context贯穿整个请求流程
- 软收敛机制:支持Stop/超时操作时,能够优雅地取消进行中的请求
- 效果:
- Go PoC和YAML PoC的行为完全一致
- 更好的并发控制和资源管理
- 避免请求泄漏或无法及时终止的问题
7. [优化]Shiro-key 支持回归
- 功能恢复:重新支持Shiro框架的key检测
8. [优化]Backup-files 支持回归
- 功能恢复:重新支持备份文件扫描