Skip to main content

ffuf-fuzz

Perform web fuzzing for content discovery, parameter enumeration, and virtual host detection using ffuf. Use when directory or file discovery is needed, when fuzzing parameters for hidden endpoints, when enumerating virtual hosts, or when brute-forcing authentication.

来源信息

仓库
zebbern/termstack
最近来源活动
2026年4月10日 22:53
检测到的 SKILL.md 语言
英语
星标
5
分支
3

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
2 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
ffuf-fuzz
description
Perform web fuzzing for content discovery, parameter enumeration, and virtual host detection using ffuf. Use when directory or file discovery is needed, when fuzzing parameters for hidden endpoints, when enumerating virtual hosts, or when brute-forcing authentication.
tags
["security","fuzzing","ffuf","content-discovery","brute-force"]
triggers
["fuzz","ffuf","content discovery","directory brute","parameter fuzzing","web fuzzing"]
# ffuf-fuzz ## When to Use - When directory and file enumeration is needed on web targets - When discovering hidden endpoints, paths, or backup files - When fuzzing GET or POST parameters for injection points - When enumerating virtual hosts (vhost discovery) - When brute-forcing login forms or authentication endpoints - When testing for parameter tampering vulnerabilities - When discovering API endpoints or routes - When extension-based file discovery is required ## Quick Start Basic directory fuzzing against a target: ```bash ffuf -w /usr/share/wordlists/dirb/common.txt -u https://example.com/FUZZ ``` ## Step-by-Step Process 1. **Install ffuf** (if needed): ```bash go install github.com/ffuf/ffuf/v2@latest ``` 2. **Basic Directory Discovery**: ```bash ffuf -w wordlist.txt -u https://target.com/FUZZ ``` 3. **Filter False Positives** using auto-calibration: ```bash ffuf -w wordlist.txt -u https://target.com/FUZZ -ac ``` 4. **Save Results** in structured format: ```bash ffuf -w wordlist.txt -u https://target.com/FUZZ -o results.json -of json ``` 5. **Review and Refine** with specific filters: ```bash ffuf -w wordlist.txt -u https://target.com/FUZZ -mc 200,301,302 -fs 0 ``` ## Examples ### Example 1: Basic Directory Discovery **Scenario:** Find hidden directories on a web server **Command:** ```bash ffuf -w /usr/share/wordlists/dirb/common.txt -u https://example.com/FUZZ -c ``` **Output:** ``` admin [Status: 301, Size: 178, Words: 6, Lines: 8] api [Status: 200, Size: 1245, Words: 89, Lines: 42] backup [Status: 403, Size: 276, Words: 20, Lines: 10] config [Status: 301, Size: 178, Words: 6, Lines: 8] uploads [Status: 301, Size: 178, Words: 6, Lines: 8] ``` ### Example 2: Extension-Based File Discovery **Scenario:** Find files with specific extensions **Command:** ```bash ffuf -w wordlist.txt -u https://example.com/FUZZ -e .php,.bak,.txt,.old,.zip -c ``` **Output:** ``` config.php [Status: 200, Size: 0, Words: 1, Lines: 1] database.bak [Status: 200, Size: 45678, Words: 2341, Lines: 890] readme.txt [Status: 200, Size: 1234, Words: 200, Lines: 45] backup.zip [Status: 200, Size: 89012, Words: 1, Lines: 1] ``` ### Example 3: Virtual Host Discovery **Scenario:** Enumerate subdomains/vhosts via Host header fuzzing **Command:** ```bash ffuf -w subdomains.txt -u https://10.10.10.10 -H "Host: FUZZ.example.com" -fs 4242 ``` **Output:** ``` admin [Status: 200, Size: 8901, Words: 456, Lines: 123] api [Status: 200, Size: 2345, Words: 89, Lines: 34] dev [Status: 200, Size: 6789, Words: 321, Lines: 98] staging [Status: 200, Size: 5432, Words: 234, Lines: 67] ``` ### Example 4: GET Parameter Name Fuzzing **Scenario:** Discover hidden GET parameters **Command:** ```bash ffuf -w params.txt -u "https://example.com/page?FUZZ=test" -fs 4242 -c ``` **Output:** ``` id [Status: 200, Size: 5678, Words: 234, Lines: 78] debug [Status: 200, Size: 8901, Words: 456, Lines: 123] admin [Status: 200, Size: 2345, Words: 89, Lines: 34] redirect [Status: 302, Size: 0, Words: 1, Lines: 1] ``` ### Example 5: GET Parameter Value Fuzzing **Scenario:** Fuzz values for a known parameter **Command:** ```bash ffuf -w values.txt -u "https://example.com/user?id=FUZZ" -fc 404,401 -c ``` **Output:** ``` 1 [Status: 200, Size: 1234, Words: 89, Lines: 23] 100 [Status: 200, Size: 1456, Words: 92, Lines: 25] admin [Status: 200, Size: 2345, Words: 156, Lines: 45] ``` ### Example 6: POST Data Fuzzing **Scenario:** Fuzz POST body parameters for authentication bypass **Command:** ```bash ffuf -w passwords.txt -X POST -d "username=admin&password=FUZZ" \ -H "Content-Type: application/x-www-form-urlencoded" \ -u https://example.com/login -fc 401 -c ``` **Output:** ``` admin123 [Status: 302, Size: 0, Words: 1, Lines: 1] password1 [Status: 302, Size: 0, Words: 1, Lines: 1] ``` ### Example 7: JSON Body Fuzzing **Scenario:** Fuzz JSON API parameters **Command:** ```bash ffuf -w payloads.txt -X POST -H "Content-Type: application/json" \ -d '{"username":"admin","role":"FUZZ"}' \ -u https://example.com/api/user -mr "success" -c ``` **Output:** ``` admin [Status: 200, Size: 234, Words: 12, Lines: 5] superuser [Status: 200, Size: 234, Words: 12, Lines: 5] ``` ### Example 8: Multi-Wordlist Clusterbomb **Scenario:** Test all username/password combinations **Command:** ```bash ffuf -w users.txt:USER -w passwords.txt:PASS \ -X POST -d "user=USER&pass=PASS" \ -H "Content-Type: application/x-www-form-urlencoded" \ -u https://example.com/login -fc 401 -c ``` **Output:** ``` [USER: admin] [PASS: secret123] [Status: 302, Size: 0, Words: 1, Lines: 1] [USER: test] [PASS: test] [Status: 302, Size: 0, Words: 1, Lines: 1] ``` ### Example 9: Pitchfork Mode (Parallel Lists) **Scenario:** Test paired credentials (username1+password1, username2+password2) **Command:** ```bash ffuf -mode pitchfork -w users.txt:USER -w passwords.txt:PASS \ -X POST -d "user=USER&pass=PASS" \ -u https://example.com/login -fc 401 -c ``` **Output:** ``` [USER: john] [PASS: john123] [Status: 302, Size: 0, Words: 1, Lines: 1] [USER: admin] [PASS: admin456] [Status: 302, Size: 0, Words: 1, Lines: 1] ``` ### Example 10: Recursive Directory Scanning **Scenario:** Discover nested directory structures **Command:** ```bash ffuf -w wordlist.txt -u https://example.com/FUZZ -recursion -recursion-depth 2 -c ``` **Output:** ``` admin [Status: 301, Size: 178, Words: 6, Lines: 8] admin/config [Status: 200, Size: 1234, Words: 89, Lines: 23] admin/users [Status: 301, Size: 178, Words: 6, Lines: 8] admin/users/list [Status: 200, Size: 5678, Words: 234, Lines: 78] api [Status: 301, Size: 178, Words: 6, Lines: 8] api/v1 [Status: 200, Size: 890, Words: 45, Lines: 12] ``` ### Example 11: Auto-Calibration for False Positive Elimination **Scenario:** Let ffuf determine optimal filters automatically **Command:** ```bash ffuf -w wordlist.txt -u https://example.com/FUZZ -ac -c ``` **Output:** ``` [INFO] Auto-calibration: Response size 4242 filtered admin [Status: 200, Size: 8901, Words: 456, Lines: 123] backup [Status: 200, Size: 2345, Words: 89, Lines: 34] ``` ### Example 12: Time-Based Detection (SQL Injection) **Scenario:** Detect time-based vulnerabilities using response timing **Command:** ```bash ffuf -w sqli-payloads.txt -X POST -H "Content-Type: application/json" \ -d '{"id":"FUZZ"}' -u https://example.com/api/lookup -mt ">5000" -c ``` **Output:** ``` ' OR SLEEP(5)-- [Status: 200, Size: 123, Words: 8, Lines: 3, Time: 5234ms] 1; WAITFOR DELAY '0:0:5' [Status: 200, Size: 123, Words: 8, Lines: 3, Time: 5189ms] ``` ### Example 13: Replay Matches Through Proxy **Scenario:** Send matching requests to Burp Suite for analysis **Command:** ```bash ffuf -w wordlist.txt -u https://example.com/FUZZ -replay-proxy http://127.0.0.1:8080 -c ``` **Output:** ``` [INFO] Matched requests will be replayed through proxy admin [Status: 200, Size: 8901, Words: 456, Lines: 123] api [Status: 200, Size: 2345, Words: 89, Lines: 34] ``` ### Example 14: JSON Output for Automation **Scenario:** Export results in JSON for pipeline integration **Command:** ```bash ffuf -w wordlist.txt -u https://example.com/FUZZ -o results.json -of json -c ``` **Output File (results.json):** ```json { "results": [ { "input": { "FUZZ": "admin" }, "position": 45, "status": 200, "length": 8901, "words": 456, "lines": 123, "content-type": "text/html", "redirectlocation": "", "url": "https://example.com/admin", "duration": 234567890, "host": "example.com" } ], "config": { "url": "https://example.com/FUZZ", "method": "GET" } } ``` ## Error Handling | Error | Cause | Resolution | | --------------------------- | ------------------------ | ------------------------------------------------------ | | `Wordlist not found` | Invalid wordlist path | Verify path exists and is readable | | `Connection refused` | Target not reachable | Check target URL and network connectivity | | `Too many open files` | Thread count too high | Reduce threads with `-t 10` or increase ulimit | | `Context deadline exceeded` | Request timeout | Increase timeout with `-timeout 30` | | `No results` | Filters too aggressive | Try `-mc all` to see all responses, then adjust | | `Rate limited (429)` | Too many requests | Add delay with `-p 0.5` or reduce rate with `-rate 50` | | `SSL certificate error` | Invalid/self-signed cert | Target may need `-k` flag (not available, use proxy) | | `403 on all requests` | WAF or firewall blocking | Use `-sf` to stop on 95% 403 responses | ## Matchers and Filters Reference ### Matchers (Include Results) | Flag | Description | Example |
在 GitHub 查看
这个 SKILL.md 很大,SkillsMP 这里只预览前一段内容。 在 GitHub 查看