/dast-ffuf
Fast web fuzzer for DAST testing with directory enumeration, parameter fuzzing, and virtual host discovery. Written in Go for high-performance HTTP fuzzing with extensive filtering capabilities. Supports multiple fuzzing modes (clusterbomb, pitchfork, sniper) and recursive
$ npx -y skills add AgentSecOps/SecOpsAgentKit --skill dast-ffuf --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/dast-ffuf
Context preview
The summary Claude sees to decide when to auto-load this skill.
Fast web fuzzer for DAST testing with directory enumeration, parameter fuzzing, and virtual host discovery. Written in Go for high-performance HTTP fuzzing with extensive filtering capabilities. Supports multiple fuzzing modes (clusterbomb, pitchfork, sniper) and recursive
SKILL.md
dast-ffuf.SKILL.mdname: dast-ffuf
description: >
Fast web fuzzer for DAST testing with directory enumeration, parameter fuzzing, and virtual host
discovery. Written in Go for high-performance HTTP fuzzing with extensive filtering capabilities.
Supports multiple fuzzing modes (clusterbomb, pitchfork, sniper) and recursive scanning. Use when:
(1) Discovering hidden directories, files, and endpoints on web applications, (2) Fuzzing GET and
POST parameters to identify injection vulnerabilities, (3) Enumerating virtual hosts and subdomains,
(4) Testing authentication endpoints with credential fuzzing, (5) Finding backup files and sensitive
data exposures, (6) Performing comprehensive web application reconnaissance.
version: 0.1.0
maintainer: SirAppSec
category: appsec
tags: [dast, fuzzing, web-fuzzer, directory-enumeration, parameter-fuzzing, vhost-discovery, ffuf, reconnaissance]
frameworks: [OWASP]
dependencies:
tools: [ffuf]
references:
- https://github.com/ffuf/ffuf
ffuf - Fast Web Fuzzer
Overview
ffuf is a fast web fuzzer written in Go designed for discovering hidden resources, testing parameters, and performing comprehensive web application reconnaissance. It uses the FUZZ keyword as a placeholder for wordlist entries and supports advanced filtering, multiple fuzzing modes, and recursive scanning for thorough security assessments.
Installation
# Using Go
go install github.com/ffuf/ffuf/v2@latest
# Using package managers
# Debian/Ubuntu
apt install ffuf
# macOS
brew install ffuf
# Or download pre-compiled binary from GitHub releases
Quick Start
Basic directory fuzzing:
# Directory discovery
ffuf -u https://example.com/FUZZ -w /usr/share/wordlists/dirb/common.txt
# File discovery with extension
ffuf -u https://example.com/FUZZ -w wordlist.txt -e .php,.html,.txt
# Virtual host discovery
ffuf -u https://example.com -H "Host: FUZZ.example.com" -w subdomains.txt
Core Workflows
Workflow 1: Directory and File Enumeration
For discovering hidden resources on web applications:
1. Start with common directory wordlist:
ffuf -u https://target.com/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/common.txt \
-mc 200,204,301,302,307,401,403 \
-o results.json2. Review discovered directories (focus on 200, 403 status codes) 3. Enumerate files in discovered directories:
ffuf -u https://target.com/admin/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/raft-small-files.txt \
-e .php,.bak,.txt,.zip \
-mc all -fc 4044. Use recursive mode for deep enumeration:
ffuf -u https://target.com/FUZZ \
-w wordlist.txt \
-recursion -recursion-depth 2 \
-e .php,.html \
-v5. Document findings and test discovered endpoints
Workflow 2: Parameter Fuzzing (GET/POST)
Progress: [ ] 1. Identify target endpoint for parameter testing [ ] 2. Fuzz GET parameter names to discover hidden parameters [ ] 3. Fuzz parameter values for injection vulnerabilities [ ] 4. Test POST parameters with JSON/form data [ ] 5. Apply appropriate filters to reduce false positives [ ] 6. Analyze responses for anomalies and vulnerabilities [ ] 7. Validate findings manually [ ] 8. Document vulnerable parameters and payloads
Work through each step systematically. Check off completed items.
**GET Parameter Name Fuzzing:**
ffuf -u https://target.com/api?FUZZ=test \
-w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \
-fs 0 # Filter out empty responses
**GET Parameter Value Fuzzing:**
ffuf -u https://target.com/api?id=FUZZ \
-w payloads.txt \
-mc all
**POST Data Fuzzing:**
# Form data
ffuf -u https://target.com/login \
-X POST \
-d "username=admin&password=FUZZ" \
-w passwords.txt \
-H "Content-Type: application/x-www-form-urlencoded"
# JSON data
ffuf -u https://target.com/api/login \
-X POST \
-d '{"username":"admin","password":"FUZZ"}' \
-w passwords.txt \
-H "Content-Type: application/json"Workflow 3: Virtual Host and Subdomain Discovery
For identifying virtual hosts and subdomains:
1. Prepare subdomain wordlist (or use SecLists) 2. Run vhost fuzzing:
ffuf -u https://target.com \
-H "Host: FUZZ.target.com" \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
-fs 0 # Filter by response size to identify valid vhosts3. Filter results by comparing response sizes/words 4. Verify discovered vhosts manually 5. Enumerate directories on each vhost 6. Document vhost configurations and exposed services
Workflow 4: Authentication Endpoint Fuzzing
For testing login forms and authentication mechanisms:
1. Identify authentication endpoint 2. Fuzz usernames:
ffuf -u https://target.com/login \
-X POST \
-d "username=FUZZ&password=test123" \
-w usernames.txt \
-H "Content-Type: application/x-www-form-urlencoded" \
-mr "Invalid password|Incorrect password" # Match responses indicating valid user3. For identified users, fuzz passwords:
ffuf -u https://target.com/login \
-X POST \
-d "username=admin&password=FUZZ" \
-w /usr/share/seclists/Passwords/Common-Credentials/10-million-password-list-top-1000.txt \
-H "Content-Type: application/x-www-form-urlencoded" \
-fc 401,403 # Filter failed attempts4. Use clusterbomb mode for combined username/password fuzzing:
ffuf -u https://target.com/login \
-X POST \
-d "username=FUZZ1&password=FUZZ2" \
-w usernames.txt:FUZZ1 \
-w passwords.txt:FUZZ2 \
-mode clusterbombWorkflow 5: Backup and Sensitive File Discovery
For finding exposed backup files and sensitive data:
1. Create wordlist of common backup patterns 2. Fuzz for backup files:
ffuf -u https://target.com/FUZZ \
-w backup-files.txt \
-e .bak,.backup,.old,.zip,.tar.gzRead more
name: dast-ffuf description: > Fast web fuzzer for DAST testing with directory enumeration, parameter fuzzing, and virtual host discovery. Written in Go for high-performance HTTP fuzzing with extensive filtering capabilities. Supports multiple fuzzing modes (clusterbomb, pitchfork, sniper) and recursive scanning. Use when: (1) Discovering hidden directories, files, and endpoints on web applications, (2) Fuzzing GET and POST parameters to identify injection vulnerabilities, (3) Enumerating virtual hosts and subdomains, (4) Testing authentication endpoints with credential fuzzing, (5) Finding backup files and sensitive data exposures, (6) Performing comprehensive web application reconnaissance. version: 0.1.0 maintainer: SirAppSec category: appsec tags: [dast, fuzzing, web-fuzzer, directory-enumeration, parameter-fuzzing, vhost-discovery, ffuf, reconnaissance] frameworks: [OWASP] dependencies: tools: [ffuf] references: - https://github.com/ffuf/ffuf
ffuf - Fast Web Fuzzer
Overview
ffuf is a fast web fuzzer written in Go designed for discovering hidden resources, testing parameters, and performing comprehensive web application reconnaissance. It uses the FUZZ keyword as a placeholder for wordlist entries and supports advanced filtering, multiple fuzzing modes, and recursive scanning for thorough security assessments.
Installation
# Using Go go install github.com/ffuf/ffuf/v2@latest # Using package managers # Debian/Ubuntu apt install ffuf # macOS brew install ffuf # Or download pre-compiled binary from GitHub releases
Quick Start
Basic directory fuzzing:
# Directory discovery ffuf -u https://example.com/FUZZ -w /usr/share/wordlists/dirb/common.txt # File discovery with extension ffuf -u https://example.com/FUZZ -w wordlist.txt -e .php,.html,.txt # Virtual host discovery ffuf -u https://example.com -H "Host: FUZZ.example.com" -w subdomains.txt
Core Workflows
Workflow 1: Directory and File Enumeration
For discovering hidden resources on web applications:
1. Start with common directory wordlist:
ffuf -u https://target.com/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/common.txt \
-mc 200,204,301,302,307,401,403 \
-o results.json2. Review discovered directories (focus on 200, 403 status codes) 3. Enumerate files in discovered directories:
ffuf -u https://target.com/admin/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/raft-small-files.txt \
-e .php,.bak,.txt,.zip \
-mc all -fc 4044. Use recursive mode for deep enumeration:
ffuf -u https://target.com/FUZZ \
-w wordlist.txt \
-recursion -recursion-depth 2 \
-e .php,.html \
-v5. Document findings and test discovered endpoints
Workflow 2: Parameter Fuzzing (GET/POST)
Progress: [ ] 1. Identify target endpoint for parameter testing [ ] 2. Fuzz GET parameter names to discover hidden parameters [ ] 3. Fuzz parameter values for injection vulnerabilities [ ] 4. Test POST parameters with JSON/form data [ ] 5. Apply appropriate filters to reduce false positives [ ] 6. Analyze responses for anomalies and vulnerabilities [ ] 7. Validate findings manually [ ] 8. Document vulnerable parameters and payloads
Work through each step systematically. Check off completed items.
**GET Parameter Name Fuzzing:**
ffuf -u https://target.com/api?FUZZ=test \ -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt \ -fs 0 # Filter out empty responses
**GET Parameter Value Fuzzing:**
ffuf -u https://target.com/api?id=FUZZ \ -w payloads.txt \ -mc all
**POST Data Fuzzing:**
# Form data
ffuf -u https://target.com/login \
-X POST \
-d "username=admin&password=FUZZ" \
-w passwords.txt \
-H "Content-Type: application/x-www-form-urlencoded"
# JSON data
ffuf -u https://target.com/api/login \
-X POST \
-d '{"username":"admin","password":"FUZZ"}' \
-w passwords.txt \
-H "Content-Type: application/json"Workflow 3: Virtual Host and Subdomain Discovery
For identifying virtual hosts and subdomains:
1. Prepare subdomain wordlist (or use SecLists) 2. Run vhost fuzzing:
ffuf -u https://target.com \
-H "Host: FUZZ.target.com" \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
-fs 0 # Filter by response size to identify valid vhosts3. Filter results by comparing response sizes/words 4. Verify discovered vhosts manually 5. Enumerate directories on each vhost 6. Document vhost configurations and exposed services
Workflow 4: Authentication Endpoint Fuzzing
For testing login forms and authentication mechanisms:
1. Identify authentication endpoint 2. Fuzz usernames:
ffuf -u https://target.com/login \
-X POST \
-d "username=FUZZ&password=test123" \
-w usernames.txt \
-H "Content-Type: application/x-www-form-urlencoded" \
-mr "Invalid password|Incorrect password" # Match responses indicating valid user3. For identified users, fuzz passwords:
ffuf -u https://target.com/login \
-X POST \
-d "username=admin&password=FUZZ" \
-w /usr/share/seclists/Passwords/Common-Credentials/10-million-password-list-top-1000.txt \
-H "Content-Type: application/x-www-form-urlencoded" \
-fc 401,403 # Filter failed attempts4. Use clusterbomb mode for combined username/password fuzzing:
ffuf -u https://target.com/login \
-X POST \
-d "username=FUZZ1&password=FUZZ2" \
-w usernames.txt:FUZZ1 \
-w passwords.txt:FUZZ2 \
-mode clusterbombWorkflow 5: Backup and Sensitive File Discovery
For finding exposed backup files and sensitive data:
1. Create wordlist of common backup patterns 2. Fuzz for backup files:
ffuf -u https://target.com/FUZZ \
-w backup-files.txt \
-e .bak,.backup,.old,.zip,.tar.gzAn assortment of security operations skills for AI coding agents. A collaborative approach to shift-left security using Claude Code skills.
Other skills on secopsagentkit.
- /api-mitmproxy
Interactive HTTPS proxy for API security testing with traffic interception, modification, and replay capabilities. Supports HTTP/1, HTTP/2, HTTP/3, WebSockets, and TLS-protected protocols. Includes Python scripting API for automation and multiple interfaces (console, web, CLI).
Open skill - /api-spectral
API specification linting and security validation using Stoplight's Spectral with support for OpenAPI, AsyncAPI, and Arazzo specifications. Validates API definitions against security best practices, OWASP API Security Top 10, and custom organizational standards. Use when: (1)
Open skill - /dast-nuclei
Fast, template-based vulnerability scanning using ProjectDiscovery's Nuclei with extensive community templates covering CVEs, OWASP Top 10, misconfigurations, and security issues across web applications, APIs, and infrastructure. Use when: (1) Performing rapid vulnerability
Open skill - /dast-zap
Dynamic application security testing (DAST) using OWASP ZAP (Zed Attack Proxy) with passive and active scanning, API testing, and OWASP Top 10 vulnerability detection. Use when: (1) Performing runtime security testing of web applications and APIs, (2) Detecting vulnerabilities
Open skill - /sast-bandit
Python security vulnerability detection using Bandit SAST with CWE and OWASP mapping. Use when: (1) Scanning Python code for security vulnerabilities and anti-patterns, (2) Identifying hardcoded secrets, SQL injection, command injection, and insecure APIs, (3) Generating
Open skill - /sast-semgrep
Static application security testing (SAST) using Semgrep for vulnerability detection, security code review, and secure coding guidance with OWASP and CWE framework mapping. Use when: (1) Scanning code for security vulnerabilities across multiple languages, (2) Performing
Open skill

