ffuf-fuzz

$npx mdskill add wgpsec/AboutSecurity/ffuf-fuzz

Execute flexible web fuzzing to discover paths, parameters, and hosts.

  • Replaces manual path enumeration with automated brute force attacks.
  • Integrates with custom wordlists and supports multiple fuzz positions.
  • Analyzes HTTP responses to identify valid endpoints and hidden data.
  • Outputs structured results highlighting discovered files and parameters.

SKILL.md

.github/skills/ffuf-fuzzView on GitHub ↗
---
name: ffuf-fuzz
description: "ffuf 模糊测试工具完整参考。用于目录/文件发现、参数 Fuzz、虚拟主机枚举、POST 数据 Fuzz、多位置 Fuzz。当需要对 Web 应用进行路径爆破、参数发现、子域名枚举时使用。比 gobuster/dirsearch 更灵活——支持多 FUZZ 位置和自定义过滤。任何需要 Web 路径或参数暴力枚举的场景都应使用此 skill"
metadata:
  tags: "ffuf,fuzz,directory,brute force,parameter,vhost,wordlist,web,目录扫描,参数发现,模糊测试"
  category: "tool"
---

# ffuf 模糊测试工具完整参考

ffuf (Fuzz Faster U Fool) 是最灵活的 Web 模糊测试工具。核心概念:用 `FUZZ` 关键字标记需要替换的位置。

## Phase 1: 目录/文件发现(最常用)

```bash
# 基础目录扫描
ffuf -u http://target/FUZZ -w /usr/share/seclists/Discovery/Web-Content/common.txt

# 指定扩展名
ffuf -u http://target/FUZZ -w /usr/share/seclists/Discovery/Web-Content/common.txt \
    -e .php,.html,.txt,.bak,.zip

# 递归扫描(发现目录后继续深入)
ffuf -u http://target/FUZZ -w wordlist.txt -recursion -recursion-depth 2

# 大字典深度扫描
ffuf -u http://target/FUZZ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt \
    -e .php,.asp,.jsp -t 50
```

### 字典选择

| 场景 | 推荐字典 |
|------|----------|
| 快速扫描 | `Discovery/Web-Content/common.txt` (4660) |
| 中等扫描 | `Discovery/Web-Content/directory-list-2.3-small.txt` (87k) |
| 深度扫描 | `Discovery/Web-Content/directory-list-2.3-medium.txt` (220k) |
| 备份文件 | `Discovery/Web-Content/common-and-backup.txt` |
| API 路径 | `Discovery/Web-Content/api/api-endpoints.txt` |
| CTF 常见 | `/pentest/AboutSecurity/Dic/Web/CTF/` |

---

## Phase 2: 参数 Fuzz(发现隐藏参数)

```bash
# GET 参数发现
ffuf -u 'http://target/page.php?FUZZ=test' \
    -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
    -fs 4242  # 过滤默认响应大小

# GET 参数值 Fuzz
ffuf -u 'http://target/page.php?id=FUZZ' \
    -w /usr/share/seclists/Fuzzing/integers-1-1000.txt

# POST 参数发现
ffuf -u 'http://target/api' -X POST \
    -d 'FUZZ=test' \
    -H 'Content-Type: application/x-www-form-urlencoded' \
    -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
    -fs 4242

# JSON 参数 Fuzz
ffuf -u 'http://target/api' -X POST \
    -d '{"FUZZ":"test"}' \
    -H 'Content-Type: application/json' \
    -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
    -fs 4242
```

**CTF 专用参数字典**:`/pentest/AboutSecurity/Dic/Web/CTF/Fuzz_param.txt`

---

## Phase 3: 虚拟主机 / 子域名枚举

```bash
# 虚拟主机枚举(通过 Host 头)
ffuf -u http://target/ -H 'Host: FUZZ.target.com' \
    -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
    -fs 4242  # 过滤默认页面大小
```

---

## Phase 4: 多位置 Fuzz

ffuf 支持多个 FUZZ 关键字(用不同名称区分):

```bash
# 用户名+密码爆破
ffuf -u http://target/login -X POST \
    -d 'username=HFUZZ&password=WFUZZ' \
    -H 'Content-Type: application/x-www-form-urlencoded' \
    -w users.txt:HFUZZ -w passwords.txt:WFUZZ \
    -fc 401  # 过滤 401 响应

# 目录+扩展名组合
ffuf -u http://target/W1FUZZ.W2FUZZ \
    -w dirs.txt:W1FUZZ -w extensions.txt:W2FUZZ \
    -mode clusterbomb  # 所有组合(笛卡尔积)
```

### Fuzz 模式

| 模式 | 说明 | 场景 |
|------|------|------|
| `clusterbomb` | 所有组合(默认) | 用户名×密码 |
| `pitchfork` | 一一对应 | 已知配对的凭据 |
| `sniper` | 单字典逐位置 | 单参数多位置 |

---

## Phase 5: 过滤与匹配(关键!)

ffuf 默认显示所有响应,需要过滤噪音:

### 过滤(排除不想要的)

| 参数 | 作用 | 示例 |
|------|------|------|
| `-fc` | 过滤状态码 | `-fc 404,403,500` |
| `-fs` | 过滤响应大小 | `-fs 4242` |
| `-fw` | 过滤响应词数 | `-fw 12` |
| `-fl` | 过滤响应行数 | `-fl 5` |
| `-fr` | 过滤正则匹配 | `-fr 'not found'` |
| `-ft` | 过滤响应时间 | `-ft '>3000'`(>3秒) |

### 匹配(只显示想要的)

| 参数 | 作用 | 示例 |
|------|------|------|
| `-mc` | 匹配状态码 | `-mc 200,301,302` |
| `-ms` | 匹配响应大小 | `-ms 1234` |
| `-mw` | 匹配响应词数 | `-mw 100-500` |
| `-mr` | 匹配正则 | `-mr 'flag\{.*\}'` |

**技巧**:先不加过滤跑一次,观察默认响应大小,然后用 `-fs` 过滤掉。

---

## Phase 6: 常用选项

```bash
# 线程数(默认 40,可调高)
-t 100

# 延迟(避免被封,单位毫秒)
-p 0.1

# 请求速率限制(每秒请求数)
-rate 50

# 自定义 Cookie
-b 'session=abc123; token=xyz'

# 自定义 Header
-H 'Authorization: Bearer TOKEN'
-H 'X-Forwarded-For: 127.0.0.1'

# 代理
-x http://127.0.0.1:8080
-x socks5://127.0.0.1:1080

# 输出到文件
-o results.json -of json
-o results.csv -of csv
-o results.html -of html

# 自动校准(自动检测过滤基线)
-ac

# 跟随重定向
-r

# 超时(秒)
-timeout 10

# 静默模式(只输出结果)
-s
```

---

## 实战场景速查

| 场景 | 命令 |
|------|------|
| 快速目录扫描 | `ffuf -u URL/FUZZ -w common.txt -mc 200,301,302` |
| 扫 PHP 文件 | `ffuf -u URL/FUZZ -w common.txt -e .php -mc 200` |
| 找隐藏参数 | `ffuf -u 'URL?FUZZ=1' -w burp-parameter-names.txt -fs SIZE` |
| LFI 参数 Fuzz | `ffuf -u 'URL?FUZZ=../../../etc/passwd' -w Fuzz_param.txt -mr 'root:'` |
| 子域名枚举 | `ffuf -u URL -H 'Host: FUZZ.target' -w subdomains.txt -fs SIZE` |
| 暴力登录 | `ffuf -u URL -X POST -d 'user=admin&pass=FUZZ' -w passwords.txt -fc 401` |
| API 端点发现 | `ffuf -u URL/api/FUZZ -w api-endpoints.txt -mc 200,401,403` |
| 备份文件搜索 | `ffuf -u URL/FUZZ -w common.txt -e .bak,.zip,.tar.gz,.sql -mc 200` |

## 注意事项

- **`-ac` 自动校准**非常实用——自动检测默认响应并过滤,减少手动设置 `-fs` 的麻烦
- ffuf 默认 40 线程,对弱目标可能过快导致 429/封 IP,降到 `-t 10 -p 0.1`
- 字典路径:SecLists 通常在 `/usr/share/seclists/`,AboutSecurity 字典在 `/pentest/AboutSecurity/Dic/`
- POST Fuzz 必须指定 Content-Type 头,否则服务端可能不解析
- 多位置 Fuzz 默认是 clusterbomb(笛卡尔积),大字典时组合数爆炸,注意字典大小

More from wgpsec/AboutSecurity

SkillDescription
401-403-bypass401/403 访问拒绝绕过方法论。当遇到管理后台、API 端点返回 401/403 Forbidden 时使用。覆盖路径操纵、HTTP 方法篡改、Header 注入、协议降级、组合攻击
ad-acl-abuseActive Directory ACL 滥用攻击方法论。当 BloodHound 发现 GenericAll/WriteDACL/WriteOwner/GenericWrite/ForceChangePassword 等危险 ACE 时使用。覆盖 ACE 枚举、权限滥用链、Shadow Credentials、RBCD 攻击
ad-delegation-attackKerberos 委派攻击(非约束/约束/RBCD)。当 BloodHound 发现委派配置、或已获取有 SPN 的服务账号/机器账号控制权时使用。通过 S4U 协议滥用可实现跨服务模拟任意用户,常用于域内权限提升和横向移动。
ad-domain-attackActive Directory 域环境攻击全链路。当目标主机在域环境中(systeminfo 显示 Domain 非 WORKGROUP)、发现 88/389/636 端口、或获取到域用户凭据时使用。覆盖域信息收集、用户枚举、Kerberoasting、AS-REP Roasting、委派攻击、ACL 滥用、DCSync、Golden/Silver Ticket
ad-persistenceAD 域环境持久化技术。当已获取域管/本地管理员权限、需要建立持久访问以确保重启或密码更改后仍能回到目标环境时使用。覆盖主机级持久化(计划任务/注册表Run/COM劫持/WMI事件订阅/Windows服务/启动文件夹)、域级持久化(Golden Ticket/Silver Ticket/Skeleton Key/DSRM/AdminSDHolder)、DCShadow/GoldenGMSA高级技术、清理命令与检测规避
ad-trust-attack域信任关系攻击。当目标存在多域/多林环境时使用。包含父子域提权(Golden Ticket + ExtraSid)、跨林攻击(SID History/MSSQL Trust Links)、单向信任利用。已获取子域 Domain Admin 或发现信任关系时优先加载。
adcs-certipy-attackActive Directory Certificate Services (ADCS) 证书攻击。当发现域内有 CA 服务器、ADCS Web Enrollment、证书模板配置错误时使用。覆盖 ESC1-ESC11 所有证书滥用路径、Certipy 工具链、证书伪造、NTLM 中继到 ADCS。发现 ADCS/CA/证书/certsrv 相关内容时一定要使用此技能
adinfo-enum使用 Adinfo 进行 Active Directory 信息收集。当获得域用户凭据后需要快速收集域环境信息时使用。Adinfo 是一个快速 AD 信息收集工具,一条命令输出域控列表、域管用户、信任关系、GPO、SPN、委派配置等关键信息——比手动 LDAP 查询快得多。发现域环境后第一步信息收集使用此技能
agent-security|
ai-data-security|