
🛡️ Hochleistungs-WAF- & CDN-Erkennungstool. Identifizieren Sie Schutzschichten (Cloudflare, Akamai, AWS, Fastly und mehr), führen Sie Effektivitäts- und Durchsetzungstests mit Evasion-Payloads durch und erstellen Sie Posture-Berichte. In Rust entwickelt 🦀.
CLI-Tool zum Erkennen, Testen und Profilieren von Web Application Firewalls (WAFs) und Content Delivery Networks (CDNs).
Wichtig: Testen Sie nur Systeme, die Ihnen gehören oder für die Sie eine ausdrückliche Testgenehmigung haben.
Für KI-Coding-Agents: Siehe AGENTS.md für Skill-Mapping und Workflow-Hinweise. Verwenden Sie agent-skills/waf-assess/WORKFLOW.md für vollständige Assessments; verwenden Sie agent-skills/validate-build/WORKFLOW.md vor dem Merge.
| Modus | Was getestet wird | Flag |
|---|---|---|
| Erkennung | Identifiziert, welche WAF/CDN ein Ziel schützt | waf-detect <url> |
| Smoke-Test | Sendet bekannte Angriffs-Payloads, misst Blockraten | --smoke-test <url> |
| Durchsetzungstest | Sendet kategorisierte Angriffssonden, misst Block/Challenge/Allow | --va <url> |
| Verhaltensanalyse | Gepaarte Sonden zur Prüfung der WAF-Sophistication über 5 Kanäle | --va2 <url> --va2-run |
| Posture-Bericht | Einheitliche Bewertung (A-F) aus allen Testergebnissen | --posture <url> |
| HTML-Bericht | Rendert gespeicherte JSON-Ergebnisse in einen teilbaren statischen Bericht | report <file.json> |
cargo build --release
./target/release/waf-detect scan example.com
# Full hardening scan + HTML report
./target/release/waf-detect hardening https://example.com --output /tmp/example-hardening.json
./target/release/waf-detect report /tmp/example-hardening.json --output /tmp/example-hardening.html
| Modus | Befehl |
|---|---|
| Erkennung | waf-detect scan <url> oder waf-detect <url> |
| Hardening | waf-detect hardening <url> --output file.json |
| Smoke-Test | waf-detect --smoke-test <url> |
| Durchsetzung | waf-detect va <url> |
| Verhalten | waf-detect va2 <url> --run |
| Posture | waf-detect --posture <url> |
| Effektivität | waf-detect --effectiveness <url> |
| Origin-Probe | waf-detect origin-probe <url> --json |
| HTML-Bericht | waf-detect report <file.json> -o <file.html> |
Identifiziert WAF/CDN über Header, Body, DNS, TLS und Timing. 12 Anbieter: CloudFlare, AWS, Akamai, Fastly, Vercel, Azure, F5, Imperva, ModSecurity, Sucuri, Radware, FortiWeb.
waf-detect scan example.com --json
waf-detect scan @urls.txt --ndjson
Sendet bekannte Angriffs-Payloads und misst, was die WAF blockiert, mit Challenge belegt oder durchlässt. Aktives Smoke-Testing läuft nur gegen registrierte, eigene Ziele.
./target/release/waf-detect --smoke-test example.com
# Aggressive mode (more payloads)
./target/release/waf-detect --smoke-test example.com --aggressive
# Export results
./target/release/waf-detect --smoke-test example.com -o results.json
Getestete Angriffskategorien: SQL-Injection (Basis + erweitert), XSS (Basis + erweitert), Command Injection, Path Traversal, SSTI, SSRF, Log4Shell, Datei-Upload, Scanner-Erkennung, GraphQL-Injection, HTTP Request Smuggling, Prototype Pollution, WebSocket-Injection, Enumeration.
Ergebnisklassifizierungen:
BLOCKED — WAF hat die Anfrage blockiert (typischerweise 403)CHALLENGE — Bot-Schutz ausgelöst (JS-Challenge, CAPTCHA)ALLOWED — Anfrage wurde an den Origin durchgelassenERROR — Nicht blockierender Fehler (404, 500, Timeout)Sendet kategorisierte Angriffssonden und misst Block/Challenge/Allow-Raten mit Konfidenzbewertung. Erfordert registrierten Ziel-Scope.
# Register owned targets once
./target/release/waf-detect --scope init example.com
# Run enforcement test
./target/release/waf-detect --va https://example.com
# With JSON output
./target/release/waf-detect --va https://example.com --va-json
# Save report
./target/release/waf-detect --va https://example.com --va-output report.json
Optionen:
--va-tier 1|2|3 — Sicherheitsstufe (1 = am sichersten)--va-budget N — Max. Anfragen pro Lauf (Standard: 120)--va-timeout SECONDS — Timeout pro Anfrage (Standard: 15)--va-delay MS — Verzögerung zwischen Anfragen (Standard: 750)--va-variants N — Varianten pro Payload-Template (Standard: 4)--va-replay — Replay-Plan als JSON exportieren--va-replay-csv — Replay-Plan als CSV exportierenTestet die WAF-Sophistication durch Senden gepaarter Sonden — eine gutartig, eine bösartig — über 5 HTTP-Kanäle. Misst, ob die WAF sie unterschiedlich behandelt.
# Dry run (shows plan without executing)
./target/release/waf-detect --va2 https://example.com
# Run behavioral analysis
./target/release/waf-detect --va2 https://example.com --va2-run
# Full 5-phase analysis
./target/release/waf-detect --va2 https://example.com --va2-run \
--va2-phases baseline,protocol-variance,state-escalation,behavioral-pressure,challenge-interaction
# Save results
./target/release/waf-detect --va2 https://example.com --va2-run --va2-output results.json
Was gemessen wird:
| Signal | Was getestet wird |
|---|---|
| Encoding Defense | Normalisiert die WAF kodierte Pfade vor dem Matching? |
| Session Tracking | Verfolgt die WAF den Session-Status und eskaliert bei wiederholtem Missbrauch? |
| Bot Challenge | Gibt die WAF CAPTCHA- oder JS-Challenges aus? |
| Rate Limiting | Drosselt die WAF schnelle Anfragen? |
| Attack Recognition | Unterscheidet die WAF Angriffssonden von gutartigen Anfragen? |
Getestete Kanäle: Path, Query, Header, Body, Method. Kanäle mit 0 % Angriffserkennung werden als ungeschützt markiert.
Optionen:
--va2-phases LIST — Auszuführende Phasen (kommagetrennt)--va2-seed N — Deterministischer Seed für reproduzierbare Ergebnisse (Standard: 1337)--va2-budget N — Anfragebudget (Standard: 60)--va2-json — Plan/Bericht als JSON ausgebenErzeugt eine einheitliche Sicherheitsbewertung (A-F) und einen Risikoscore (0-100), der Erkennungskonfidenz, Durchsetzungsergebnisse und Verhaltensanalyse kombiniert.
# Detection only
./target/release/waf-detect --posture example.com
# Include behavioral analysis
./target/release/waf-detect --posture example.com --posture-va2
# Include enforcement testing (VA1) -- distinguishes "WAF present but not
# enforcing" (monitor/log-only mode) from "no WAF at all"
./target/release/waf-detect --posture example.com --posture-va1
# JSON output
./target/release/waf-detect --posture example.com --posture-va2 --posture-json
Bewertungsskala:
Rendert ein gespeichertes JSON-Scan-Artefakt in einen statischen HTML-Bericht, der lokal leicht zu prüfen und mit anderen Engineers zu teilen ist.
# Render a saved hardening report
./target/release/waf-detect hardening https://example.com --output /tmp/example-hardening.json
./target/release/waf-detect report /tmp/example-hardening.json
# Render a saved posture report
./target/release/waf-detect --posture https://example.com --posture-va2 --posture-json > /tmp/example-posture.json
./target/release/waf-detect report /tmp/example-posture.json --output /tmp/example-posture.html
Das generierte HTML ist statisch und eigenständig, sodass es an Tickets angehängt, im Chat geteilt oder lokal geöffnet werden kann, ohne den Scan erneut auszuführen.
Smoke-Test, Payload-Analyse, Durchsetzung, Verhaltensanalyse und Effektivitätstests erfordern registrierte, eigene Ziele.
# Check target scope
./target/release/waf-detect --scope
# Initialize target scope
./target/release/waf-detect --scope init example.com api.example.com