Ffuf web fuzzing
Skill findscripter/everything-skills/08-security/ffuf-web-fuzzing
类书式 AI Agent 技能大典 · 精选/中文化/互见成网的 500+ 开源技能,可作为 Claude Code 插件市场一键安装。A curated, cross-referenced encyclopedia of 500+ open-source agent skills.
npx -y skills add findscripter/everything-skills --skill ffuf-web-fuzzingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
当在授权渗透测试中用 ffuf 做 Web 模糊测试(目录/文件发现、子域枚举、参数/POST/请求头模糊、带认证原始请求 IDOR)时使用;做命令构造、自动校准降噪、过滤匹配与结果分析,产出可执行命令与 JSON/HTML/CSV 结果。不适用于未授权目标或非 Web/二进制模糊。触发词:ffuf、Web 模糊测试、目录爆破
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.8 KB, as published. Nobody here has run it
何时使用
- 在已获授权的渗透测试 / 安全评估中,用
ffuf对 Web 目标做模糊测试。 - 任务涉及:目录与文件发现、子域(虚拟主机)枚举、参数名/参数值模糊、POST/JSON 数据模糊、请求头模糊、带认证的原始请求模糊(典型如 IDOR:遍历用户/文档 ID)。
- 需要词表选型、过滤/匹配、自动校准降噪与结果解读的指导。
不该用边界:
- 未获书面授权的目标——不要扫描,先停下确认授权与范围。
- 非 Web 场景(二进制/协议 fuzzing、源码审计)不适用。
- 不要把 ffuf 输出当作漏洞确认的最终结论,需结合人工与环境验证。
- 缺少目标 URL、词表、授权范围或成功标准时,先问清再动手。
步骤
- 确认授权范围,准备 SecLists 词表(见「指令」)。
- 先发一次基线请求,观察默认响应的状态码/大小/行数,作为过滤依据。
- 把
FUZZ(区分大小写)放到要模糊的位置:URL 路径、请求头、POST body 或子域。 - 默认加
-ac自动校准降噪;按基线用-fs/-fc/-fr进一步过滤。 - 生产目标加限速隐身:
-rate、-t、-p。 - 输出存盘(
-o results.json)便于后续分析;关注异常项(不同状态码/大小/耗时、admin/api/backup/.git 等敏感端点)。 - 带认证场景改用原始请求文件
--request req.txt(见示例)。
指令
安装:
go install github.com/ffuf/ffuf/v2@latest # Go
brew install ffuf # macOS
# 或下载 https://github.com/ffuf/ffuf/releases/latest
FUZZ 关键字可放任意位置;多词表用 -w 表.txt:关键字 自定义关键字。多词表模式:clusterbomb(笛卡尔积,默认)/pitchfork(并行 1:1)/sniper(单点逐位)。
匹配(保留): -mc 状态码 -ms 大小 -ml 行数 -mw 词数 -mr 正则 -mt 耗时
过滤(剔除): -fc 状态码 -fs 大小 -fl 行数 -fw 词数 -fr 正则 -ft 耗时
自动校准(默认必加): -ac 自动识别并过滤重复假阳性;多主机用 -ach;自定义模式 -acc "404NotFound"。无 -ac 时结果会被成千上万的 404/403 噪声淹没,分析极困难。
限速与时限: -rate 2(每秒请求数)-t 10(线程,默认 40)-p 0.1-2.0(随机延迟)-maxtime 60 -maxtime-job 60(配合递归)。
输出: -o results.json;-of html|csv|all;-s 静默;-c -v 彩色详细。
代理/认证/编码: -x http://127.0.0.1:8080(Burp)-replay-proxy;-b "sessionid=abc" Cookie;-cc client.crt -ck client.key 客户端证书;-enc 'FUZZ:urlencode'。
推荐词表(SecLists,https://github.com/danielmiessler/SecLists):
- 目录:
raft-large-directories.txt、directory-list-2.3-medium.txt - 子域:
subdomains-top1million-5000.txt - 参数:
burp-parameter-names.txt - 用户名/密码:SecLists Usernames / Passwords
示例
# 目录与文件发现(带扩展名 + 自动校准)
ffuf -w wordlist.txt -u https://target.com/FUZZ -e .php,.html,.txt,.bak -ac -c -v -o results.json
# 子域 / 虚拟主机枚举(先看默认大小再用 -fs 过滤)
ffuf -w subdomains.txt -u https://target.com -H "Host: FUZZ.target.com" -fs 4242 -ac
# 参数名 / 参数值模糊
ffuf -w params.txt -u "https://target.com/script.php?FUZZ=test" -fs 4242
ffuf -w values.txt -u "https://target.com/script.php?id=FUZZ" -fc 401
# POST 登录爆破(限速隐身)
ffuf -w passwords.txt -X POST -d "username=admin&password=FUZZ" -u https://target.com/login -fc 401 -rate 5 -ac
# 递归发现嵌套目录
ffuf -w wordlist.txt -u https://target.com/FUZZ -recursion -recursion-depth 2 -maxtime-job 120 -ac
带认证原始请求(IDOR 利器): 从 Burp/DevTools 抓完整请求存 req.txt,把要模糊的值替换为 FUZZ:
POST /api/v1/users/FUZZ HTTP/1.1
Host: target.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Cookie: session=abc123xyz; csrftoken=def456
Content-Type: application/json
{"action":"view","id":"1"}
# 遍历 ID 测 IDOR;FUZZ 可同时出现在 路径/头/body
ffuf --request req.txt -w user_ids.txt -ac -mc 200 -o results.json
# 多 FUZZ 位置 + pitchfork 并行
ffuf --request req.txt -w endpoints.txt:ENDPOINT -w ids.txt:ID -mode pitchfork -ac
注意事项
-ac几乎是强制项:每次扫描默认带上,尤其要把结果交给 AI 分析时,否则假阳性会淹没真正的异常。- 带复杂认证(JWT/CSRF/Cookie/自定义头)时,别硬拼命令行参数,直接用
--request req.txt最稳。 - 过滤前先看基线响应;组合过滤如
-fc 403,404 -fs 1234更精准;漏结果时用-mc all或临时关掉-ac排查。 - 隐身/避免触发 WAF/IDS:
-rate 2 -t 10 -p 0.5-1.5、随机 UA、代理轮换。 - 太慢:加线程
-t 100、缩小词表、-ignore-body。 - 执行中按 ENTER 进入交互模式,可动态调过滤、存结果、重启或管理队列。
- 可在
~/.config/ffuf/ffufrc设默认头、线程、超时、匹配状态码。 - 给客户出报告时用
-of html/-of csv。 - 分析结果时聚焦异常:不同状态码/大小/耗时,留意 admin、api、backup、config、.git;标记报错堆栈、版本信息等潜在风险,并对有价值发现做二次模糊。
互见
- 练习靶场:http://ffuf.me | 官方 Wiki:https://github.com/ffuf/ffuf/wiki | Codingo 指南:https://codingo.io/tools/ffuf/bounty/
- 配合 Burp Suite 抓包构造
req.txt;词表来源 SecLists。 - 同域(安全/misc)下的其他内容发现、子域枚举与认证测试类技能。
采编自 sickn33/antigravity-awesome-skills(MIT 许可)。