Loading...

文章背景图

FFuF:Go 编写的高速 Web 模糊测试工具|部署与使用全指南

2026-11-02
0
- 字
- 分钟
|

图1 ffuf 官方吉祥物(README 官方素材)

ffuf · Fuzz Faster U Fool · Go 编写的高速 Web 模糊测试工具部署与使用全指南

项目仓库: https://github.com/ffuf/ffuf

开源协议:MIT License · 语言:Go(要求 Go 1.20+) · 当前版本:v2.x · 关键字:FUZZ 占位 · 支持:目录 / vhost / GET 参数 / POST 数据 / 外部 mutator


1 项目简介

ffuf(Fuzz Faster U Fool)是一个用 Go 编写的快速 Web 模糊测试(web fuzzer)工具。通过在 URL、HTTP 头或 POST 数据中放置 FUZZ 关键字占位,ffuf 会用字典批量替换该位置并发送请求,再按状态码、响应大小、行数、字数等规则过滤,快速发现隐藏目录、虚拟主机、可用参数与注入点。

1.1 核心信息一览

项目项 内容
项目名称 ffuf(Fuzz Faster U Fool)
仓库地址 github.com/ffuf/ffuf
项目定位 高速 Web 目录 / vhost / 参数 / POST 模糊测试工具
开源协议 MIT(见 LICENSE)
语言 Go(1.20+)
安装方式 Release 二进制、Scoop / Winget / Homebrew、go install、源码构建
默认端口 无网络服务(本地命令行工具)
系统入口 ffuf 命令
配置文件 $XDG_CONFIG_HOME/ffuf/ffufrc

1.2 适用场景

  • Web 目录 / 内容发现:-u https://target/FUZZ 批量枚举路径。
  • 虚拟主机发现:fuzz Host 头并过滤默认响应大小。
  • GET 参数名 / 参数值 fuzzing;POST body 与 JSON fuzzing。
  • 配合 Radamsa 等外部 mutator 生成畸形 payload 做模糊测试。
  • 递归目录扫描:-recursion 自动深入发现的子目录。

1.3 能力边界(官方口径)

  • ffuf 是 fuzz 工具,不是漏洞利用框架;它负责“批量发请求 + 过滤结果”,是否构成漏洞需人工复核。
  • 官方建议用 https://github.com/adamtlangley/ffufme 容器或 http://ffuf.me 在线靶场练习,避免在未授权目标上测试。
  • 本地 go build 的版本会显示 git-<date>-<commit>,官方强调权威发布版本以 Releases 页面二进制为准。

2 功能特性

  • FUZZ 占位符:在 URL、Header、POST 数据任意位置放置 FUZZ,即可对该处 fuzz。
  • 强大的匹配 / 过滤:按状态码 -mc/-fc、响应大小 -ms/-fs、行数 -ml/-fl、字数 -mw/-fw、正则 -mr/-fr、响应时间 -mt/-ft 过滤。
  • 自动校准:-ac 自动校准过滤选项;-acc / -ach / -acs 自定义校准。
  • 递归扫描:-recursion、-recursion-depth、-recursion-strategy(default / greedy)。
  • 限速与延时:-p(延时秒数或范围)、-rate(每秒请求数)、-t(并发线程,默认 40)。
  • 外部 mutator:--input-cmd 调用 Radamsa 等命令生成 payload,$FFUF_NUM 作为种子。
  • 多字典模式:-w params.txt:PARAM -w values.txt:VAL,模式 clusterbomb / pitchfork / sniper。
  • 交互式模式:运行中按 ENTER 进入交互 shell,动态调整过滤器、管理队列、保存结果。
  • 多种输出格式:-of json, ejson, html, md, csv, ecsv,-o 写文件。
  • 配置文件:默认 ffufrc 自动加载,-config 指定配置文件;命令行参数覆盖配置。

3 官方界面预览

开头封面即 ffuf 官方吉祥物(README 官方素材)。运行时终端显示进度、已命中条目、状态码与大小;按 ENTER 可进入交互模式,用 show、fs、fc、rate、savejson 等命令动态调整。

4 官方跳转链接汇总

类别 链接 说明
仓库主页 https://github.com/ffuf/ffuf 源码、Issues、Releases
Releases github.com/ffuf/ffuf/releases/latest 预编译二进制
Wiki github.com/ffuf/ffuf/wiki 详细文档与示例
ffufrc 示例 ffufrc.example 配置文件模板
练习靶场 github.com/adamtlangley/ffufme 本地练习容器
在线练习 http://ffuf.me 官方在线靶场
Awesome 指南 codingo.io FFUF 指南 扩展教程
许可证 LICENSE MIT

5 前置要求与服务器配置

5.1 软件前提

  • 使用 Release 二进制:无需 Go 环境,下载解压即可运行。
  • 使用 go install / 源码构建:需要 Go 1.20 或更高版本。
  • 包管理器:Windows 可用 Scoop(scoop install ffuf)或 Winget(winget install ffuf.ffuf);macOS 可用 Homebrew(brew install ffuf)。
  • 字典文件:自备。

5.2 硬件建议

  • 普通主机即可;扫描速度取决于网络与目标并发承受能力。
  • 官方默认并发线程为 40;过高并发易触发目标 WAF / 封禁。

5.3 端口与资源

  • 工具不监听端口;作为客户端向外发请求。

6 方式一:Release 二进制 / 包管理器(推荐)

# macOS
brew install ffuf

# Windows
scoop install ffuf
# 或
winget install ffuf.ffuf

# 或直接从 Releases 下载对应平台二进制解压运行

7 方式二:go install / 源码构建

go install github.com/ffuf/ffuf/v2@latest

# 或源码构建
git clone https://github.com/ffuf/ffuf
cd ffuf
go get
go build

8 常用参数与示例

命令 用途
ffuf -w wordlist -u https://target/FUZZ 目录发现
ffuf -w vhosts -u https://target -H "Host: FUZZ" -fs 4242 vhost 发现(过滤默认响应大小)
ffuf -w params -u https://target/script.php?FUZZ=test -fs 4242 GET 参数名 fuzz
ffuf -w vals -u https://target/script.php?valid_name=FUZZ -fc 401 GET 参数值 fuzz(过滤 401)
ffuf -w postdata -X POST -d "username=admin&password=FUZZ" -u https://target/login.php -fc 401 POST fuzz
-maxtime 60 / -maxtime-job 60 限制总 / 单任务时长
-recursion -recursion-depth 2 递归扫描
-t 40 -p 0.1 -rate 100 并发 / 延时 / 限速
-of json -o out.json 输出为 JSON

9 常用运维命令

  • 查看帮助与版本:ffuf -h、ffuf -V
  • 目录发现并保存:ffuf -w dirs.txt -u https://target/FUZZ -o out.json -of json
  • 交互模式:运行中按 ENTER,然后 show、fs、fc、rate、savejson、resume。
  • 更新:重新 go install 或重新下载 Release 二进制。

10 常见故障排查

  • 大量 403:用 -sf(>95% 响应为 403 时停止)自动停;降低并发或加延时。
  • 误报多:用 -ac 自动校准,或手动 -fs/-fc 过滤默认响应。
  • 结果为空:确认目标可达,检查 -mc/-fc 默认过滤(默认只匹配 2xx/301/302/307/401/403/405/500),可改用 -mc all。
  • 递归不生效:URL 必须以 FUZZ 结尾才支持 -recursion。
  • 本地构建版本号不对:官方以 Releases 二进制为准。

11 风险与合规说明

  • 合法性:ffuf 只能在你拥有或已获书面授权的目标上使用;未经授权对他人网站做 fuzzing 属违法行为。练习请用官方提供的 ffufme / ffuf.me 靶场。
  • 许可证:MIT,可自由使用与再分发。
  • 对目标影响:高并发 fuzz 易触发 WAF、限流、封 IP;建议用 -p / -rate 限速。
  • 本文整理自官方 README,命令与参数以官方仓库最新说明为准;不包含 star 数等动态数据。
评论交流

文章目录