# 引擎配置
#
# 参数命名：统一用中划线（如 rate-limit），系统自动转换为下划线
# 必需参数：enabled（是否启用）
# 可选参数：timeout（超时秒数，默认 auto 自动计算）

subdomain_discovery:
  # ==================== 子域名发现 ====================
  # Stage 1: 被动收集（并行） - 必选，至少启用一个工具
  # Stage 2: 字典爆破（可选） - 使用字典暴力枚举子域名
  # Stage 3: 变异生成 + 验证（可选） - 基于已发现域名生成变异，流式验证存活
  # Stage 4: DNS 存活验证（可选） - 验证所有候选域名是否能解析
  # === Stage 1: 被动收集工具（并行执行）===
  passive_tools:
    subfinder:
      enabled: true
      timeout: 3600      # 1小时
      # threads: 10      # 并发 goroutine 数
      
    sublist3r:
      enabled: true
      timeout: 3600
      # threads: 50      # 线程数
    
    assetfinder:
      enabled: true
      timeout: 3600

  # === Stage 2: 主动字典爆破（可选）===
  bruteforce:
    enabled: false
    subdomain_bruteforce:
      # timeout: auto                    # 自动根据字典行数计算
      wordlist-name: subdomains-top1million-110000.txt    # 对应「字典管理」中的 Wordlist.name

  # === Stage 3: 变异生成 + 存活验证（可选）===
  permutation:
    enabled: true
    subdomain_permutation_resolve:
      timeout: 7200

  # === Stage 4: DNS 存活验证（可选）===
  resolve:
    enabled: true
    subdomain_resolve:
      timeout: auto    # 自动根据候选子域数量计算

port_scan:
  # ==================== 端口扫描 ====================
  tools:
    naabu_active:
      enabled: true
      # timeout: auto    # 自动计算（目标数 × 端口数 × 0.5秒），范围 60秒 ~ 2天
      threads: 200       # 并发连接数（默认 5）
      # ports: 1-65535   # 扫描端口范围（默认 1-65535）
      top-ports: 100     # 扫描 nmap top 100 端口
      rate: 50           # 扫描速率
      
    naabu_passive:
      enabled: true
      # timeout: auto    # 被动扫描通常较快

site_scan:
  # ==================== 站点扫描 ====================
  tools:
    httpx:
      enabled: true
      # timeout: auto        # 自动计算（每个 URL 约 1 秒）
      # threads: 50          # 并发线程数（默认 50）
      # rate-limit: 150      # 每秒请求数（默认 150）
      # request-timeout: 10  # 单个请求超时秒数（默认 10）
      # retries: 2           # 请求失败重试次数

fingerprint_detect:
  # ==================== 指纹识别 ====================
  # 在 站点扫描 后串行执行，识别 WebSite 的技术栈
  tools:
    xingfinger:
      enabled: true
      fingerprint-libs: [ehole, goby, wappalyzer, fingers, fingerprinthub, arl]  # 默认启动全部指纹库

directory_scan:
  # ==================== 目录扫描 ====================
  tools:
    ffuf:
      enabled: true
      # timeout: auto                     # 自动计算（字典行数 × 0.02秒），范围 60秒 ~ 2小时
      max-workers: 5                      # 并发扫描站点数（默认 5）
      wordlist-name: dir_default.txt      # 对应「字典管理」中的 Wordlist.name
      delay: 0.1-2.0                      # 请求间隔，支持范围随机（如 "0.1-2.0"）
      threads: 10                         # 并发线程数（默认 40）
      request-timeout: 10                 # HTTP 请求超时秒数（默认 10）
      match-codes: 200,201,301,302,401,403  # 匹配的 HTTP 状态码
      # rate: 0                           # 每秒请求数（默认 0 不限制）

screenshot:
  # ==================== 网站截图 ====================
  # 使用 Playwright 对网站进行截图，保存为 WebP 格式
  # 在 Stage 2 与 url_fetch、directory_scan 并行执行
  tools:
    playwright:
      enabled: true
      concurrency: 5                        # 并发截图数（默认 5）
      url_sources: [websites]               # URL 来源，当前对website截图，还可以用 [websites, endpoints]

url_fetch:
  # ==================== URL 获取 ====================
  tools:
    waymore:
      enabled: true
      timeout: 3600      # 固定 1 小时（按域名输入）
    
    katana:
      enabled: true
      # timeout: auto    # 自动计算（根据站点数量）
      depth: 5           # 爬取最大深度（默认 3）
      threads: 10        # 全局并发数
      rate-limit: 30     # 每秒最多请求数
      random-delay: 1    # 请求间随机延迟秒数
      retry: 2           # 失败重试次数
      request-timeout: 12  # 单请求超时秒数
    
    uro:
      enabled: true
      # timeout: auto    # 自动计算（每 100 个 URL 约 1 秒），范围 30 ~ 300 秒
      # whitelist:       # 只保留指定扩展名
      #   - php
      #   - asp
      # blacklist:       # 排除指定扩展名（静态资源）
      #   - jpg
      #   - png
      #   - css
      # filters:         # 额外过滤规则
      #   - hasparams    # 只保留有参数的 URL
      #   - vuln         # 只保留可能有漏洞的 URL
    
    httpx:
      enabled: true
      # timeout: auto        # 自动计算（每个 URL 约 1 秒）
      # threads: 50          # 并发线程数（默认 50）
      # rate-limit: 150      # 每秒请求数（默认 150）
      # request-timeout: 10  # 单个请求超时秒数（默认 10）
      # retries: 2           # 请求失败重试次数

vuln_scan:
  # ==================== 漏洞扫描 ====================
  tools:
    dalfox_xss:
      enabled: true
      # timeout: auto        # 自动计算（endpoints 行数 × 100 秒）
      request-timeout: 10  # 单个请求超时秒数
      only-poc: r            # 只输出 POC 结果（r: 反射型）
      ignore-return: "302,404,403"  # 忽略的返回码
      delay: 50            # 请求间隔（毫秒）
      worker: 30             # worker 数量
      user-agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
      # blind-xss-server: xxx  # 盲打 XSS 回连服务地址

    nuclei:
      enabled: true
      # timeout: auto        # 自动计算（根据 endpoints 行数）
      template-repo-names:   # 模板仓库列表，对应「Nuclei 模板」中的仓库名
        - nuclei-templates
        # - nuclei-custom    # 可追加自定义仓库
      concurrency: 25        # 并发数（默认 25）
      rate-limit: 150        # 每秒请求数限制（默认 150）
      request-timeout: 5     # 单个请求超时秒数（默认 5）
      severity: medium,high,critical  # 只扫描中高危
      # tags: cve,rce        # 只使用指定标签的模板
