
关于
渗透测试中 ffuf Web 模糊测试的专家指导,包括使用原始请求的认证模糊测试、自动校准和结果分析。
name: ffuf-web-fuzzing description: 渗透测试中ffuf网页模糊测试的专家指导,包括使用原始请求的认证模糊测试、自动校准和结果分析 risk: unknown source: community
FFUF(Fuzz Faster U Fool)技能
何时使用
- 在授权安全测试或渗透测试期间使用
ffuf对网页目标进行模糊测试。 - 任务涉及内容发现、子域名枚举、参数模糊测试或认证请求模糊测试。
- 需要关于字典、过滤、校准和高效解读ffuf结果的指导。
概述
FFUF是一个用Go编写的快速网页模糊测试工具,设计用于在渗透测试期间发现隐藏内容、目录、文件、子域名和测试漏洞。它比dirb或dirbuster等传统工具快得多。
安装
# Using Go
go install github.com/ffuf/ffuf/v2@latest
# Using Homebrew (macOS)
brew install ffuf
# Binary download
# Download from: https://github.com/ffuf/ffuf/releases/latest
核心概念
FUZZ关键字
FUZZ关键字用作占位符,会被字典中的条目替换。你可以将它放在任何位置:
- URL:
https://target.com/FUZZ - 头部:
-H "Host: FUZZ" - POST数据:
-d "username=admin&password=FUZZ" - 使用自定义关键字的多个位置:
-w wordlist.txt:CUSTOM然后使用CUSTOM代替FUZZ
多字典模式
- clusterbomb:测试所有组合(默认)- 笛卡尔积
- pitchfork:并行遍历字典(一对一匹配)
- sniper:一次测试一个位置(用于多个FUZZ位置)
常见用例
1. 目录和文件发现
# Basic directory fuzzing
ffuf -w /path/to/wordlist.txt -u https://target.com/FUZZ
# With file extensions
ffuf -w /path/to/wordlist.txt -u https://target.com/FUZZ -e .php,.html,.txt,.pdf
# Colored and verbose output
ffuf -w /path/to/wordlist.txt -u https://target.com/FUZZ -c -v
# With recursion (finds nested directories)
ffuf -w /path/to/wordlist.txt -u https://target.com/FUZZ -recursion -recursion-depth 2
2. 子域名枚举
# Virtual host discovery
ffuf -w /path/to/subdomains.txt -u https://target.com -H "Host: FUZZ.target.com" -fs 4242
# Note: -fs 4242 filters out responses of size 4242 (adjust based on default response size)
3. 参数模糊测试
# GET parameter names
ffuf -w /path/to/params.txt -u https://target.com/script.php?FUZZ=test_value -fs 4242
# GET parameter values
ffuf -w /path/to/values.txt -u https://target.com/script.php?id=FUZZ -fc 401
# Multiple parameters
ffuf -w params.txt:PARAM -w values.txt:VAL -u https://target.com/?PARAM=VAL -mode clusterbomb
4. POST数据模糊测试
# Basic POST fuzzing
ffuf -w /path/to/passwords.txt -X POST -d "username=admin&password=FUZZ" -u https://target.com/login.php -fc 401
# JSON POST data
ffuf -w entries.txt -u https://target.com/api -X POST -H "Content-Type: application/json" -d '{"name": "FUZZ", "key": "value"}' -fr "error"
# Fuzzing multiple POST fields
ffuf -w users.txt:USER -w passes.txt:PASS -X POST -d "username=USER&password=PASS" -u https://target.com/login -mode pitchfork
5. 头部模糊测试
# Custom headers
ffuf -w /path/to/wordlist.txt -u https://target.com -H "X-Custom-Header: FUZZ"
# Multiple headers
ffuf -w /path/to/wordlist.txt -u https://target.com -H "User-Agent: FUZZ" -H "X-Forwarded-For: 127.0.0.1"
过滤和匹配
匹配器(包含结果)
-mc:匹配状态码(默认:200-299,301,302,307,401,403,405,500)-ml:匹配行数-mr:匹配正则表达式-ms:匹配响应大小-mt:匹配响应时间(例如>100或<100毫秒)-mw:匹配字数
过滤器(排除结果)
-fc:过滤状态码(例如-fc 404,403,401)-fl:过滤行数-fr:过滤正则表达式(例如-fr "error")-fs:过滤响应大小(例如-fs 42,4242)-ft:过滤响应时间-fw:过滤字数
自动校准(默认使用!)
关键: 除非有特定原因,否则始终使用-ac。当让Claude分析结果时这尤其重要,因为它能大幅减少噪音和假阳性。
# Auto-calibration - ALWAYS USE THIS
ffuf -w /path/to/wordlist.txt -u https://target.com/FUZZ -ac
# Per-host auto-calibration (useful for multiple hosts)
ffuf -w /path/to/wordlist.txt -u https://target.com/FUZZ -ach
# Custom auto-calibration string (for specific patterns)
ffuf -w /path/to/wordlist.txt -u https://target.com/FUZZ -acc "404NotFound"
为什么-ac是必需的:
- 自动检测并过滤重复的假阳性响应
- 消除具有随机内容的动态网站的噪音
- 使结果分析对人类和Claude都更容易
- 防止数千个相同的404/403响应混乱输出
- 自适应
兼容工具
Claude CodeCursor
标签
安全
