ffuf
ウェブサイト上の隠されたファイルやディレクトリ、APIの接続先などを高速で見つけ出すffufは、URLを色々試したり、サブドメインを探したりする際に役立ち、ウェブサイトの隠れた情報を効率的に発見するSkill。
📜 元の英語説明(参考)
Discover hidden content, directories, subdomains, and API endpoints with ffuf — the fastest web fuzzer. Use when someone asks to "find hidden directories", "fuzz URLs", "discover API endpoints", "subdomain enumeration", "content discovery", "ffuf", "brute force paths", or "find hidden files on a website". Covers directory fuzzing, parameter fuzzing, subdomain discovery, virtual host enumeration, and recursive scanning.
🇯🇵 日本人クリエイター向け解説
ウェブサイト上の隠されたファイルやディレクトリ、APIの接続先などを高速で見つけ出すffufは、URLを色々試したり、サブドメインを探したりする際に役立ち、ウェブサイトの隠れた情報を効率的に発見するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o ffuf.zip https://jpskill.com/download/14896.zip && unzip -o ffuf.zip && rm ffuf.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/14896.zip -OutFile "$d\ffuf.zip"; Expand-Archive "$d\ffuf.zip" -DestinationPath $d -Force; ri "$d\ffuf.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
ffuf.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
ffufフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
ffuf (Fuzz Faster U Fool)
概要
ffuf は、利用可能な中で最も高速なウェブファザーです。Go で記述されており、ワードリストベースのペイロードで数千のリクエストを送信することにより、隠されたファイル、ディレクトリ、サブドメイン、および API エンドポイントを発見します。dirbuster や gobuster とは異なり、ffuf は複数のファジング位置(URL、ヘッダー、POST ボディ、Cookie)、レスポンスフィルタリング、および再帰的なスキャンをサポートしています。
どのような時に使うか
- ウェブサーバー上の隠されたディレクトリとファイルを発見する
- ドキュメント化されていない API エンドポイントを見つける
- サブドメインと仮想ホストの列挙
- パラメータの発見 (GET/POST)
- バグ報奨金プログラムにおける偵察
- ペンテスト前のコンテンツディスカバリー
手順
セットアップ
# インストール
go install github.com/ffuf/ffuf/v2@latest
# またはバイナリをダウンロード
wget https://github.com/ffuf/ffuf/releases/latest/download/ffuf_linux_amd64.tar.gz
tar xzf ffuf_linux_amd64.tar.gz
# ワードリストを取得 (SecLists が標準)
git clone --depth 1 https://github.com/danielmiessler/SecLists.git
ディレクトリディスカバリー
# 基本的なディレクトリファジング — FUZZ キーワードがインジェクションポイントを示す
ffuf -u https://target.com/FUZZ -w SecLists/Discovery/Web-Content/common.txt
# レスポンスコードでフィルタリング (404 を無視)
ffuf -u https://target.com/FUZZ -w common.txt -fc 404
# レスポンスサイズでフィルタリング (デフォルトページを削除)
ffuf -u https://target.com/FUZZ -w common.txt -fs 4242
# 特定のコードのみをマッチ
ffuf -u https://target.com/FUZZ -w common.txt -mc 200,301,302,403
# 再帰的なスキャン — 発見されたディレクトリをたどる
ffuf -u https://target.com/FUZZ -w common.txt -recursion -recursion-depth 2
# 拡張子付き
ffuf -u https://target.com/FUZZ -w common.txt -e .php,.bak,.old,.txt,.json,.env
サブドメインディスカバリー
# DNS 経由のサブドメインファジング
ffuf -u https://FUZZ.target.com -w SecLists/Discovery/DNS/subdomains-top1million-5000.txt -fc 404
# 仮想ホストディスカバリー (DNS とは異なる — Host ヘッダーをチェック)
ffuf -u https://target.com -w subdomains.txt -H "Host: FUZZ.target.com" -fs 1234
API エンドポイントディスカバリー
# REST API パスファジング
ffuf -u https://api.target.com/v1/FUZZ -w SecLists/Discovery/Web-Content/api/api-endpoints.txt -mc 200,401,403
# 認証付きの API
ffuf -u https://api.target.com/v1/FUZZ -w api-endpoints.txt \
-H "Authorization: Bearer eyJhbG..." -mc 200
# パラメータファジング (GET)
ffuf -u "https://target.com/api/users?FUZZ=value" -w SecLists/Discovery/Web-Content/burp-parameter-names.txt -fs 0
# POST ボディパラメータファジング
ffuf -u https://target.com/api/login -X POST \
-H "Content-Type: application/json" \
-d '{"username":"admin","FUZZ":"test"}' \
-w params.txt -fc 400
高度な使い方
# 複数のワードリスト (2 つの FUZZ 位置: W1 と W2)
ffuf -u https://target.com/W1/W2 -w endpoints.txt:W1 -w ids.txt:W2
# 自動化のための JSON 出力
ffuf -u https://target.com/FUZZ -w common.txt -o results.json -of json
# スロットリングされたスキャン (丁寧)
ffuf -u https://target.com/FUZZ -w common.txt -rate 50 -t 10
# レスポンスボディのカスタムマッチ
ffuf -u https://target.com/FUZZ -w common.txt -mr "admin|dashboard|config"
例
例 1: 新しいターゲットに対する完全な偵察
ユーザープロンプト: "example.com のペンテストの許可を得ています。コンテンツディスカバリーから始めてください。"
エージェントは、common.txt を使用してディレクトリディスカバリーのために ffuf を実行し、次にバックアップファイル (.bak, .old, .sql)、隠された API エンドポイント、および管理パネルを確認します。
例 2: 隠された API エンドポイントを見つける
ユーザープロンプト: "当社の API には、以前の開発者によって残されたドキュメント化されていないエンドポイントがあります。それらを見つけてください。"
エージェントは、REST 固有のワードリストを使用して API パスをファジングし、一般的な API バージョニングパターン (/v1/, /v2/) を試し、発見されたエンドポイントで HTTP メソッド (GET, POST, PUT, DELETE) を確認します。
ガイドライン
- 常に許可を得てください — 許可なしにファジングを行うことは違法です
- common.txt から始める — 必要に応じて、より大きなワードリストにエスカレートします
- 最初にノイズをフィルタリングする —
-fc 404または-fs <size>を使用して、誤検知を削除します - レート制限 — 本番環境のターゲットには
-rate 50、ローカル/ステージング環境には無制限 - FUZZ がキーワード — ワードリストエントリを挿入する場所に配置します
- 拡張子が重要 —
-e .php,.bak,.envは、バックアップファイルと設定ファイルをキャッチします - 自動化のための JSON 出力 — パイプライン統合のために
-o results.json -of jsonを使用します - 再帰は慎重に — 無限ループを避けるために、最大
-recursion-depth 2 - SecLists は不可欠 — ウェブファジングの標準的なワードリストコレクション
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
ffuf (Fuzz Faster U Fool)
Overview
ffuf is the fastest web fuzzer available — written in Go, it discovers hidden files, directories, subdomains, and API endpoints by sending thousands of requests with wordlist-based payloads. Unlike dirbuster or gobuster, ffuf supports multiple fuzzing positions (URL, headers, POST body, cookies), response filtering, and recursive scanning.
When to Use
- Discovering hidden directories and files on web servers
- Finding undocumented API endpoints
- Subdomain and virtual host enumeration
- Parameter discovery (GET/POST)
- Bug bounty reconnaissance
- Pre-pentest content discovery
Instructions
Setup
# Install
go install github.com/ffuf/ffuf/v2@latest
# Or download binary
wget https://github.com/ffuf/ffuf/releases/latest/download/ffuf_linux_amd64.tar.gz
tar xzf ffuf_linux_amd64.tar.gz
# Get wordlists (SecLists is the standard)
git clone --depth 1 https://github.com/danielmiessler/SecLists.git
Directory Discovery
# Basic directory fuzzing — FUZZ keyword marks the injection point
ffuf -u https://target.com/FUZZ -w SecLists/Discovery/Web-Content/common.txt
# Filter by response code (ignore 404s)
ffuf -u https://target.com/FUZZ -w common.txt -fc 404
# Filter by response size (remove default pages)
ffuf -u https://target.com/FUZZ -w common.txt -fs 4242
# Match only specific codes
ffuf -u https://target.com/FUZZ -w common.txt -mc 200,301,302,403
# Recursive scanning — follow discovered directories
ffuf -u https://target.com/FUZZ -w common.txt -recursion -recursion-depth 2
# With extensions
ffuf -u https://target.com/FUZZ -w common.txt -e .php,.bak,.old,.txt,.json,.env
Subdomain Discovery
# Subdomain fuzzing via DNS
ffuf -u https://FUZZ.target.com -w SecLists/Discovery/DNS/subdomains-top1million-5000.txt -fc 404
# Virtual host discovery (different from DNS — checks Host header)
ffuf -u https://target.com -w subdomains.txt -H "Host: FUZZ.target.com" -fs 1234
API Endpoint Discovery
# REST API path fuzzing
ffuf -u https://api.target.com/v1/FUZZ -w SecLists/Discovery/Web-Content/api/api-endpoints.txt -mc 200,401,403
# API with authentication
ffuf -u https://api.target.com/v1/FUZZ -w api-endpoints.txt \
-H "Authorization: Bearer eyJhbG..." -mc 200
# Parameter fuzzing (GET)
ffuf -u "https://target.com/api/users?FUZZ=value" -w SecLists/Discovery/Web-Content/burp-parameter-names.txt -fs 0
# POST body parameter fuzzing
ffuf -u https://target.com/api/login -X POST \
-H "Content-Type: application/json" \
-d '{"username":"admin","FUZZ":"test"}' \
-w params.txt -fc 400
Advanced Usage
# Multiple wordlists (two FUZZ positions: W1 and W2)
ffuf -u https://target.com/W1/W2 -w endpoints.txt:W1 -w ids.txt:W2
# Output to JSON for automation
ffuf -u https://target.com/FUZZ -w common.txt -o results.json -of json
# Throttled scanning (polite)
ffuf -u https://target.com/FUZZ -w common.txt -rate 50 -t 10
# Custom match on response body
ffuf -u https://target.com/FUZZ -w common.txt -mr "admin|dashboard|config"
Examples
Example 1: Full recon on a new target
User prompt: "I have permission to pentest example.com. Start with content discovery."
The agent will run ffuf for directory discovery with common.txt, then check for backup files (.bak, .old, .sql), hidden API endpoints, and admin panels.
Example 2: Find hidden API endpoints
User prompt: "Our API has undocumented endpoints left by previous developers. Find them."
The agent will fuzz API paths with REST-specific wordlists, try common API versioning patterns (/v1/, /v2/), and check HTTP methods (GET, POST, PUT, DELETE) on discovered endpoints.
Guidelines
- ALWAYS have authorization — fuzzing without permission is illegal
- Start with common.txt — then escalate to bigger wordlists if needed
- Filter noise first — use
-fc 404or-fs <size>to remove false positives - Rate limit —
-rate 50for production targets, unlimited for local/staging - FUZZ is the keyword — place it wherever you want to inject wordlist entries
- Extensions matter —
-e .php,.bak,.envcatches backup and config files - JSON output for automation —
-o results.json -of jsonfor pipeline integration - Recursive with caution —
-recursion-depth 2max to avoid infinite loops - SecLists is essential — the standard wordlist collection for web fuzzing