mcpField
F
ffuf-fuzz

ffuf-fuzz

github.com/wgpsecセキュリティ1.8k48 回インストール4 日前に更新
リポジトリ

ffuf-fuzz について

Webファジングにおける ffuf の使い方をまとめたセキュリティ向けリファレンスです。パス探索、パラメーターや仮想ホストの列挙、複数位置への入力、レスポンスの絞り込みを扱います。

主な機能

  1. 01ディレクトリーとファイルの探索
  2. 02パラメーターのファジング
  3. 03仮想ホストの列挙
  4. 04複数位置へのファジング
  5. 05レスポンスの照合と絞り込み

活用シーン

  1. 01Webパスやバックアップファイルの発見
  2. 02隠れたパラメーターのテスト
  3. 03仮想ホストの列挙
  4. 04スキャン結果のノイズ除去

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wgpsec/aboutsecurity --skill ffuf-fuzz

インストール後、Claude Code で/ffuf-fuzzを入力して読み込まれたか確認します。

詳細

ffuf ファジングツール完全リファレンス

ffuf(Fuzz Faster U Fool)は、最も柔軟な Web ファジングツールです。基本概念:FUZZ キーワードで置換する位置を示します。

フェーズ 1:ディレクトリ/ファイルの発見(最もよく使われます)

# 基础目录扫描
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/

フェーズ 2:パラメータのファジング(隠しパラメータの発見)

# 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/param.txt


フェーズ 3:仮想ホスト/サブドメインの列挙

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

フェーズ 4:複数位置のファジング

ffuf は複数の FUZZ キーワードをサポートしています(異なる名前で区別します)。

# 用户名+密码爆破
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  # 所有组合(笛卡尔积)
ファジングモード
モード説明シナリオ
clusterbombすべての組み合わせ(デフォルト)ユーザー名×パスワード
pitchfork1 対 1 で対応対応関係が分かっている認証情報
sniper1 つのワードリストを位置ごとに適用1 つのパラメータの複数位置

フェーズ 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 で除外します。


フェーズ 6:よく使うオプション

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

# 延迟(避免被封,单位秒;0.1 = 100ms)
-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 パラメータのファジングffuf -u 'URL?FUZZ=../../../etc/passwd' -w 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 のファジングでは Content-Type ヘッダーを必ず指定してください。指定しないと、サーバーが解析しない場合があります
  • 複数位置のファジングはデフォルトで clusterbomb(直積)です。大きなワードリストでは組み合わせ数が爆発するため、ワードリストのサイズに注意してください

コメント