【ffuf 详细使用教程】

ffuf 详细使用教程

  • 一、ffuf 核心功能与安装验证
    • 1. 功能概述
    • 2. 安装验证
  • 二、目录/文件爆破(基础与进阶)
    • 1. 基础命令
    • 2. 过滤与优化
    • 3. 递归扫描
  • 三、子域名枚举(高效实战)
    • 1. 基础命令
    • 2. 多级子域名爆破
    • 3. 结果优化
  • 四、参数模糊测试(漏洞探测)
    • 1. GET 参数模糊
    • 2. POST 数据模糊
    • 3. JSON 参数模糊
  • 五、实战案例
    • 1. 目标:example.com
    • 2. 发现漏洞示例
  • 六、高级技巧与优化
    • 1. 代理与日志分析
    • 2. 结果格式与导出
    • 3. 速率控制与重试
  • 七、推荐词表与工具链
  • 八、注意事项与合规性

本文为 ffuf 详细使用教程,涵盖目录爆破、子域名枚举、参数模糊测试、高级过滤及实战优化技巧,结合真实漏洞挖掘场景。


一、ffuf 核心功能与安装验证

1. 功能概述

  • 目录/文件枚举:快速发现隐藏的 Web 路径(如 /admin/config.php)。
  • 子域名爆破:基于字典批量探测目标的子域名(如 dev.target.com)。
  • 参数模糊测试:检测 SQLi、XSS、SSRF 等漏洞的潜在入口点。
  • 多协议支持:HTTP/HTTPS、自定义 Header、POST 数据、JSON/XML 格式。

2. 安装验证

ffuf -version  # 输出版本(如 v2.1.0)

二、目录/文件爆破(基础与进阶)

1. 基础命令

ffuf -u "http://target.com/FUZZ" -w /path/to/wordlist.txt -t 50
  • 参数解析:
    • -u:目标 URL,FUZZ 是占位符(表示替换位置)。
    • -w:字典路径(推荐 SecLists/Discovery/Web-Content)。
    • -t:并发线程数(默认 40,建议根据目标调整)。

2. 过滤与优化

  • 状态码过滤:
    -fc 403,404      # 过滤特定状态码(如 403、404)
    -mc 200,301,302  # 仅保留指定状态码(默认 200)
    
  • 响应内容过滤:
    -fs 1234         # 过滤指定响应大小(如排除 1234 字节的无效页面)
    -fr "error"      # 过滤包含关键词的响应(正则表达式)
    
  • 扩展名测试:
    -e .php,.bak,.json  # 自动为字典条目添加扩展名(如 `admin` → `admin.php`)
    

3. 递归扫描

发现目录后自动深入扫描:

ffuf -u "http://target.com/FUZZ" -w wordlist.txt -recursion -recursion-depth 2
  • -recursion:启用递归。
  • -recursion-depth:递归深度(默认 0,最大建议 3)。

三、子域名枚举(高效实战)

1. 基础命令

ffuf -u "http://FUZZ.target.com" -w subdomains.txt -t 100 -p 0.1
  • 参数解析:
    • FUZZ:替换为子域名字典条目。
    • -p:请求间隔(秒),避免触发 WAF 速率限制(如 0.1 表示每秒 10 次请求)。
    • -H "Host: FUZZ.target.com":显式设置 Host 头(某些场景需强制指定)。

2. 多级子域名爆破

ffuf -u "http://FUZZ1.FUZZ2.target.com" -w subdomains.txt:FUZZ1 -w subdomains.txt:FUZZ2
  • 双占位符:同时枚举二级和三级子域名(如 dev.api.target.com)。

3. 结果优化

  • 存活检测:
    ffuf ... -mc 200 -o subs.txt
    httpx -l subs.txt -status-code -title -ports 80,443,8080 -o alive.txt
    
  • 泛解析处理:
    -fw 35   # 过滤泛解析子域名的默认响应词数(需根据实际调整)
    

四、参数模糊测试(漏洞探测)

1. GET 参数模糊

ffuf -u "http://target.com/search?q=FUZZ&category=FUZZ2" -w params.txt:FUZZ -w xss_payloads.txt:FUZZ2
  • 多占位符:同时模糊多个参数(如 qcategory)。

2. POST 数据模糊

ffuf -u "http://target.com/login" -X POST -d "username=admin&password=FUZZ" -w passwords.txt
  • 参数解析:
    • -X POST:指定请求方法。
    • -d:POST 数据,FUZZ 替换位置。
    • -H "Content-Type: application/x-www-form-urlencoded":设置请求头。

3. JSON 参数模糊

ffuf -u "http://target.com/api" -X POST -H "Content-Type: application/json" -d '{"user":"admin","token":"FUZZ"}' -w tokens.txt

五、实战案例

1. 目标:example.com

  • 步骤 1:快速目录爆破
    ffuf -u "http://example.com/FUZZ" -w ~/SecLists/Discovery/Web-Content/quickhits.txt -t 50 -mc 200 -fc 403,404 -o quick_scan.txt
    
  • 步骤 2:深度子域名枚举
    ffuf -u "http://FUZZ.example.com" -w ~/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -t 80 -p 0.2 -mc 200 -fw 20 -o subs.txt
    
  • 步骤 3:敏感参数探测
    ffuf -u "http://api.example.com/user?id=FUZZ" -w ~/SecLists/Fuzzing/SQLi/quick-SQLi.txt -t 30 -mc 200 -fr "error"
    

2. 发现漏洞示例

  • 路径泄露:/backup.zip 包含数据库凭据。
  • 未授权访问:/admin 返回 200 状态码且无认证。
  • SQL 注入:/user?id=1' AND 1=1-- 返回异常响应。

六、高级技巧与优化

1. 代理与日志分析

  • Burp Suite 联动:
    ffuf ... -x http://127.0.0.1:8080  # 通过 Burp 代理捕获流量
    
  • 详细日志记录:
    -debug-log ffuf.log  # 输出调试日志
    

2. 结果格式与导出

  • 多格式输出:
    -o results.json -of json  # 导出 JSON 格式
    -o results.csv -of csv    # 导出 CSV 格式
    
  • 自定义输出字段:
    -od "status,url"  # 仅显示状态码和 URL
    

3. 速率控制与重试

  • 智能速率调整:
    -rate 50          # 每秒最大请求数(替代 -t 和 -p)
    -sa               # 自动调整速率(根据错误率动态优化)
    
  • 错误重试:
    -ac               # 自动校准响应基准(过滤误报)
    -retry 3          # 请求失败时重试次数
    

七、推荐词表与工具链

  • 词表资源:
    • SecLists:包含 Web 路径、子域名、参数等。
    • FuzzDB:专为漏洞挖掘设计的 Payload 集合。
  • 工具链整合:
    • ffuf → httpx → nuclei:
      ffuf -u "http://target.com/FUZZ" -w paths.txt -o paths.json
      cat paths.json | jq -r '.results[] | .url' | httpx -silent | nuclei -t nuclei-templates/
      

八、注意事项与合规性

  1. 授权测试:仅在目标授权范围内操作,避免法律风险。
  2. WAF 绕过:
    • 使用 -H "X-Forwarded-For: 127.0.0.1" 伪造 IP。
    • 结合 -e .html 混淆路径(如 admin.html)。
  3. 性能平衡:避免过高线程数导致目标服务瘫痪。

通过上述配置和实战策略,ffuf 可成为 web 安全测试项目中高效的侦察与漏洞挖掘工具。重点在于灵活组合参数、精准过滤结果,并结合自动化流程扩大测试覆盖面。

你可能感兴趣的:(security,网络安全,安全,web安全,http,网络协议)