Skip to content

v3.2.8

Choose a tag to compare

@github-actions github-actions released this 29 Dec 01:03

1. [新增] brute 暴力扫描模式

用于目录探测、凭证枚举等场景,减少重复规则维护:

  • 两种枚举策略
    • clusterbomb:笛卡尔积组合(适合小字典)
    • pitchfork:按索引配对(适合一一对应的字典)
  • 结果提交策略
    • commit: winner/first:保留首个命中结果
    • commit: last:保留最后一次命中结果
    • commit: none:只保留请求/响应
  • 继续策略
    • continue: true/false:命中后是否继续枚举
  • 保护机制
    • --brute-max-requests 5000:限制单条规则最大请求数

Brute PoC 编写规则

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 级别)

--req-limit-per-target 参数的优点

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. 使用建议

  1. 开启监控:始终添加 --live-stats
  2. 观察指标:如果 rw 持续上千ms,降低 -c
  3. 默认起手--req-limit-per-target 5 + -c 20
  4. 自动调节:可使用 --auto-req-limit 自动调参

6. [优化]Go PoC HTTP请求统一化

  • 背景:之前Go编写的PoC和YAML格式的PoC在HTTP请求处理上不一致
  • 改进内容
    1. 全局header统一合并:确保所有请求都正确应用全局设置的headers
    2. 变量回填统一:变量传递和处理逻辑保持一致
    3. 上下文贯穿:PoC级别的context贯穿整个请求流程
    4. 软收敛机制:支持Stop/超时操作时,能够优雅地取消进行中的请求
  • 效果
    • Go PoC和YAML PoC的行为完全一致
    • 更好的并发控制和资源管理
    • 避免请求泄漏或无法及时终止的问题

7. [优化]Shiro-key 支持回归

  • 功能恢复:重新支持Shiro框架的key检测

8. [优化]Backup-files 支持回归

  • 功能恢复:重新支持备份文件扫描