CLI quick start
The fastest way to detect a WAF is using the command-line interface.Understand the output
whatwaf sends multiple probe requests and reports results:Each probe tests different attack patterns:
- plain request - Baseline request without malicious payloads
- xss - Cross-site scripting payload
- sql injection - SQL injection attempt
- lfi - Local file inclusion attempt
Library quick start
Integrate WAF detection into your Rust applications.Use probe callbacks
Monitor each probe request as it executes:The callback receives a
ProbeResult with:probe_name- Type of probe (“plain request”, “xss”, etc.)url- Full URL including any probe parametersstatus- HTTP status codedetected_wafs- Optional list of detected WAF names
false to stop scanning early, or true to continue.Understanding scan results
- Detection found
- No detection
- Error
When a WAF is detected, you’ll see which probe triggered it:The scan stops after the first detection. Common indicators:
- Status
403(Forbidden) - Status
406(Not Acceptable) - Vendor-specific headers or response bodies
Next steps
CLI reference
Explore all command-line options
API reference
Deep dive into library functions and types
Detectors
See all supported WAF detections
How it works
Learn about detection methods