
waf-checker v1.2.0
Automatisiertes WAF-Bewertungstool, das Firewall-Anbieter erkennt, 19 Angriffskategorien mit fortschrittlichen Evasion-Payloads testet und farbcodierte Bypass-Analyse über CLI, Cloudflare Worker oder Docker bietet.
WAF-Prüfer
Dieses Projekt hilft Ihnen zu prüfen, wie gut Ihre Web Application Firewall (WAF) Ihr Produkt gegen gängige Webangriffe schützt. Es kann als Cloudflare Worker (mit integrierter interaktiver Web-Oberfläche) oder als eigenständiges Node.js-CLI-Tool ausgeführt werden.
🧪 Testabdeckung & Status
Alle Pakete werden gründlich mit automatisierten Unit-, Integrations-, Property-based- (fast-check-Fuzzing), Netzwerkresilienz- und Reverse-Engineering-Test-Suites getestet (100 % SSRF-Sicherheitskonformität, Protokoll-Umgehungstechniken und Berichtsformatierer):
| Paket | Zeilenabdeckung | Anweisungen | Funktionen | Testsuite |
|---|---|---|---|---|
@waf-checker/core | 93.0% 🟢 | 92.6% | 96.4% | 🟢 282 bestanden |
@waf-checker/cli | 93.5% 🟢 | 92.8% | 96.7% | 🟢 54 bestanden |
@waf-checker/worker | Bestanden 🟢 | — | — | 🟢 30 bestanden |
| Gesamte Monorepo-Suite | 93.2% | 92.7% | 96.6% | 🟢 366 Tests bestanden |
Funktionen
Kerntests
- Geben Sie eine Ziel-URL ein, wählen Sie HTTP-Methoden (GET, POST usw.) und Angriffskategorien.
- Sendet Anfragen mit Angriffs-Payloads (in Parametern, Headern oder als Dateipfade).
- Farbcodierte Terminal- und Web-Ergebnisse: 🟢 403/BLOCKED = blockiert, 🔴 2xx/5xx = potenzielle Umgehung, 🟠 3xx = Weiterleitung.
- Ergebnisse werden in einer filterbaren Tabelle mit Details zu jedem Payload angezeigt.
🕵️ WAF-Reverse-Engineering & CRS-Matrix (--reverse)
- OWASP Core Rule Set (CRS v3/v4)-Zuordnung: Prüft aktive vs. deaktivierte Regel-IDs (
920xxx,921xxx,930xxx,931xxx,932xxx,933xxx,934xxx,941xxx,942xxx,943xxx,944xxx) mit Paranoia-Levels (PL1-PL4). - Erkennung des Inspektions-Body-Limits: Binäre Suchsondierung (8 KB – 128 KB, Präzision ~1 KB) zur Identifizierung von Puffertrunkierungsgrenzen.
- Erkennung des Anomalie-Scoring-Modus: Prüft den kollaborativen Scoring-Modus gegenüber dem strikten Regex-Blockierungsmodus und identifiziert Score-Schwellenwerte.
- Sichere Rate-Limit-Sondierung: Sichere Hochskalierung bis zu 30 Anfragen/s mit sofortiger vorzeitiger Beendigung bei HTTP 429 und Extraktion von
Retry-After.
🛡️ WAF Virtual Patching & Auto-Remediation (--patch / patch-Befehl)
- Sofortige Eindämmung: Wandelt erkannte WAF-Umgehungen (HTTP 200) automatisch in einsatzbereite Firewall-Regeln, Reverse-Proxy-Konfigurationen und Infrastructure-as-Code (Terraform HCL / Cloud CLI) um.
- Unterstützte Plattformen (11 Dialekte):
- Cloudflare WAF: Wirefilter-Ausdrücke (
http.request.uri.query contains .../matches ...) &cloudflare_rulesetTerraform HCL. - AWS WAF v2: Native JSON Rule Statements (
ByteMatchStatement,RegexPatternSet,OrStatement) &aws_wafv2_rule_groupTerraform HCL. - Google Cloud Armor: CEL-Ausdrücke (
request.path.matches(...),request.headers[...]),gcloud compute security-policiesCLI-Befehle & Terraformgoogle_compute_security_policy. - Azure WAF (Front Door & App Gateway): Custom-Rule-JSON-Definitionen,
az network front-door waf-policyCLI-Befehle & Terraformazurerm_cdn_frontdoor_firewall_policy. - ModSecurity & OWASP Coraza: OWASP-CRS-kompatible
SecRule-Direktiven (SecLang) mit@pm-Token-Zusammenfassung. Unterstützt über--patch modsecurityoder--patch coraza. - NGINX: Native
location ~* \.(ext)$ { return 403; },location ~ /\.(git|svn)undmap-Konfigurationsblöcke. - HAProxy: Hochperformante native ACLs (
path_end -i,path_beg -i,query -m sub -i,req.hdr()) mithttp-request deny deny_status 403. - Caddy Server: Idiomatische Caddyfile-Named-Matcher (
@waf_patch_*) mit CEL-Ausdrücken (expression {http.request.uri.query}.matches(...)) undrespond 403. - Apache HTTP Server:
mod_rewrite-Regeln (RewriteCond %{QUERY_STRING}/%{REQUEST_URI}/%{HTTP_USER_AGENT}+RewriteRule ^ - [F,L]) fürhttpd.conf,<VirtualHost>oder.htaccess. Unterstützt über--patch apache. - Envoy Proxy: Routeneinträge, die
:path/Header über RE2safe_regexmitdirect_response: 403abgleichen (oder Forward-and-Tag im Simulate-Modus) für einen route_configuration virtual_host. Unterstützt über--patch envoy. - Kubernetes Ingress (K8s): Produktionsreife
kind: Ingress-YAML-Manifeste mitnginx.ingress.kubernetes.io/server-snippet-Annotationen.
- Cloudflare WAF: Wirefilter-Ausdrücke (
- Zweistufige Verteidigung:
- Strikter Hotfix: Exakte Token-Signaturen mit 0 % False-Positive-Risiko für sofortige Zero-Day-Incident-Response.
- Heuristisches Muster: Generalisierte reguläre Ausdrücke, die die gesamte Struktur der Schwachstellenklasse abdecken.
- Web-UI Remediation Studio: Interaktives Dashboard-Modal mit Live-Vorschau über alle Anbieter hinweg, 1-Klick-Zwischenablage-Kopie, Format-Umschaltern und Dateiexport.
Angriffskategorien (insgesamt 28)
SQL Injection, XSS, Command Injection, Path Traversal, SSRF, Local File Inclusion, Sensible Dateien, Open Redirect, SSTI, XXE, NoSQL Injection, GraphQL Injection, JWT-Angriff (Header), JWT-Angriff (Param), Prototype Pollution (JSON-Body), Prototype Pollution (URL/Param), LDAP Injection, XPath Injection, Spreadsheet-Formel-Injection, Log4Shell (JNDI), CRLF Injection, HTTP Parameter Pollution, User-Agent, IP-Bypass, HTTP Request Smuggling, Web Cache Poisoning, UTF8/Unicode-Bypass, WAF-Inspection-Limit-Bypass (Padding).
WAF-Erkennung
- Automatische Erkennung des WAF-Typs vor dem Testen (Cloudflare, AWS WAF, OWASP Coraza, BunkerWeb, ModSecurity, Akamai, Imperva, F5 BIG-IP usw.).
- Schlägt spezifische Umgehungstechniken basierend auf der erkannten WAF vor.
- Kann automatisch auf WAF-spezifische erweiterte Payloads umschalten.
Erweiterte Payloads & Kodierung
- WAF-Bypass-Payloads — doppelte Kodierung, Unicode, gemischte Groß-/Kleinschreibung, Kommentar-Injection, Polyglot-Payloads.
- Erweiterte Payloads — moderne Evasion-Techniken.
- Kodierungsvarianten — URL-, Unicode-, HTML-Entity-, Hex-, Oktal-, Base64-Kodierung mit automatischen Kombinationen.
- WAF-spezifische Umgehungen für Cloudflare, AWS WAF, ModSecurity.
Manipulation des HTTP-Protokolls
- HTTP-Verb-Tampering — Testen ungewöhnlicher HTTP-Methoden.
- Parameter Pollution — Duplizieren und Aufteilen von Parametern zwischen Query und Body.
- Content-Type Confusion — alternative Content-Types verwenden, um Regeln zu umgehen.
- Request-Smuggling-Header.
- Host-Header-Injection-Varianten.
- HTTP-Method-Override über Header (
X-HTTP-Method-Overrideusw.).
Batch-Testing
- Mehrere URLs gleichzeitig testen.
- Konfigurierbare Parallelität und Verzögerung zwischen Anfragen.
- Echtzeit-Fortschrittsverfolgung.
🔀 Regressions-Diffing (--compare / --fail-on-regression)
- Vergleicht einen Scan mit einem zuvor gespeicherten JSON-Bericht, um neue Bypässe (zuvor blockiert, jetzt nicht mehr), neu blockierte Payloads sowie hinzugefügte/entfernte Tests aufzudecken.
- CI-Gate (
--fail-on-regression), das nur bei einer Verschlechterung der WAF-Position fehlschlägt, nicht bei der vollständigen Ergebnisliste — ideal, um Drift bei Managed Rulesets zu erkennen.