
waf-checker v1.2.0
Outil automatisé d'évaluation de WAF qui détecte les fournisseurs de pare-feu, teste 19 catégories d'attaques avec des payloads d'évasion avancés, et fournit une analyse de contournement avec code couleur via CLI, Cloudflare Worker ou Docker.
Vérificateur de WAF
Ce projet vous aide à vérifier dans quelle mesure votre pare-feu d'application web (WAF) protège votre produit contre les attaques web courantes. Il peut être exécuté en tant que Cloudflare Worker (avec une interface web interactive intégrée) ou en tant qu'outil CLI Node.js autonome.
🧪 Couverture et état des tests
Tous les paquets sont testés de manière approfondie avec des suites automatisées de tests unitaires, d'intégration, basés sur les propriétés (fuzzing fast-check), de résilience réseau et de rétro-ingénierie (conformité de sécurité SSRF à 100 %, techniques d'évasion de protocole et formateurs de rapports) :
| Package | Couverture des lignes | Instructions | Fonctions | Suite de tests |
|---|---|---|---|---|
@waf-checker/core | 93.0% 🟢 | 92.6% | 96.4% | 🟢 282 réussis |
@waf-checker/cli | 93.5% 🟢 | 92.8% | 96.7% | 🟢 54 réussis |
@waf-checker/worker | Réussi 🟢 | — | — | 🟢 30 réussis |
| Suite totale du monorepo | 93.2% | 92.7% | 96.6% | 🟢 366 tests réussis |
Fonctionnalités
Tests de base
- Saisissez une URL cible, choisissez les méthodes HTTP (GET, POST, etc.) et les catégories d'attaques.
- Envoie des requêtes avec des charges utiles d'attaque (dans les paramètres, les en-têtes ou en tant que chemins de fichiers).
- Résultats dans le terminal et le web avec code couleur : 🟢 403/BLOQUÉ = bloqué, 🔴 2xx/5xx = contournement potentiel, 🟠 3xx = redirection.
- Résultats affichés dans un tableau filtrable avec les détails de chaque charge utile.
🕵️ Rétro-ingénierie de WAF et matrice CRS (--reverse)
- Mappage de l'OWASP Core Rule Set (CRS v3/v4) : Audite les ID de règles actives vs désactivées (
920xxx,921xxx,930xxx,931xxx,932xxx,933xxx,934xxx,941xxx,942xxx,943xxx,944xxx) avec les niveaux de paranoïa (PL1-PL4). - Détection de la limite du corps d'inspection : Sondage par recherche binaire (8 Ko – 128 Ko, précision ~1 Ko) pour identifier les limites de troncature du tampon.
- Détection du mode de scoring d'anomalies : Sonde le mode de scoring collaboratif par rapport au mode de blocage strict par regex et identifie les seuils de score.
- Sondage sûr de la limitation de débit : Montée en charge sûre jusqu'à 30 req/s avec arrêt anticipé immédiat sur HTTP 429 et extraction de
Retry-After.
🛡️ Correctifs virtuels WAF et remédiation automatique (--patch / commande patch)
- Atténuation instantanée : transforme automatiquement les contournements WAF détectés (HTTP 200) en règles de pare-feu prêtes à déployer, en configurations de proxy inverse et en Infrastructure-as-Code (Terraform HCL / Cloud CLI).
- Plateformes prises en charge (11 dialectes) :
- Cloudflare WAF : expressions Wirefilter (
http.request.uri.query contains .../matches ...) et Terraform HCLcloudflare_ruleset. - AWS WAF v2 : instructions de règles JSON natives (
ByteMatchStatement,RegexPatternSet,OrStatement) et Terraform HCLaws_wafv2_rule_group. - Google Cloud Armor : expressions CEL (
request.path.matches(...),request.headers[...]), commandes CLIgcloud compute security-policieset Terraformgoogle_compute_security_policy. - Azure WAF (Front Door et App Gateway) : définitions JSON de règles personnalisées, commandes CLI
az network front-door waf-policyet Terraformazurerm_cdn_frontdoor_firewall_policy. - ModSecurity et OWASP Coraza : directives
SecRulecompatibles OWASP CRS (SecLang) avec regroupement de jetons@pm. Pris en charge via--patch modsecurityou--patch coraza. - NGINX : blocs de configuration natifs
location ~* \.(ext)$ { return 403; },location ~ /\.(git|svn)etmap. - HAProxy : ACL natives hautes performances (
path_end -i,path_beg -i,query -m sub -i,req.hdr()) avechttp-request deny deny_status 403. - Caddy Server : matchers nommés idiomatiques Caddyfile (
@waf_patch_*) avec expressions CEL (expression {http.request.uri.query}.matches(...)) etrespond 403. - Apache HTTP Server : règles
mod_rewrite(RewriteCond %{QUERY_STRING}/%{REQUEST_URI}/%{HTTP_USER_AGENT}+RewriteRule ^ - [F,L]) pourhttpd.conf,<VirtualHost>ou.htaccess. Pris en charge via--patch apache. - Envoy Proxy : entrées de route correspondant à
:path/en-têtes via RE2safe_regexavecdirect_response: 403(ou transfert-et-marquage en mode simulation) pour un virtual_host de route_configuration. Pris en charge via--patch envoy. - Kubernetes Ingress (K8s) : manifestes YAML
kind: Ingressprêts pour la production avec annotationsnginx.ingress.kubernetes.io/server-snippet.
- Cloudflare WAF : expressions Wirefilter (
- Défense à deux niveaux :
- Correctif strict : signatures de jetons exactes avec 0 % de risque de faux positif pour une réponse immédiate aux incidents zero-day.
- Motif heuristique : expressions régulières généralisées couvrant toute la structure de la classe de vulnérabilité.
- Studio de remédiation Web UI : fenêtre modale de tableau de bord interactive avec aperçus en direct pour tous les fournisseurs, copie en un clic dans le presse-papiers, bascules de format et export de fichiers.
Catégories d'attaques (28 au total)
Injection SQL, XSS, Injection de commandes, Traversée de répertoires, SSRF, Inclusion locale de fichiers, Fichiers sensibles, Redirection ouverte, SSTI, XXE, Injection NoSQL, Injection GraphQL, Attaque JWT (en-tête), Attaque JWT (paramètre), Pollution de prototype (corps JSON), Pollution de prototype (URL/paramètre), Injection LDAP, Injection XPath, Injection de formule de tableur, Log4Shell (JNDI), Injection CRLF, Pollution de paramètres HTTP, User-Agent, Contournement d'IP, Contrebande de requêtes HTTP, Empoisonnement de cache Web, Contournement UTF8/Unicode, Contournement de limite d'inspection WAF (bourrage).
Détection de WAF
- Détection automatique du type de WAF avant les tests (Cloudflare, AWS WAF, OWASP Coraza, BunkerWeb, ModSecurity, Akamai, Imperva, F5 BIG-IP, etc.).
- Suggère des techniques de contournement spécifiques en fonction du WAF détecté.
- Peut basculer automatiquement vers des charges utiles avancées spécifiques au WAF.
Charges utiles et encodages avancés
- Charges utiles de contournement WAF — double encodage, unicode, casse mixte, injection de commentaires, charges utiles polyglottes.
- Charges utiles améliorées — techniques d'évasion modernes.
- Variations d'encodage — encodage URL, Unicode, entité HTML, Hex, Octal, Base64 avec combinaisons automatiques.
- Contournements spécifiques aux WAF pour Cloudflare, AWS WAF, ModSecurity.
Manipulation du protocole HTTP
- Contournement de verbe HTTP — tester des méthodes HTTP peu courantes.
- Pollution de paramètres — dupliquer et répartir les paramètres entre la requête et le corps.
- Confusion de Content-Type — utiliser d'autres types de contenu pour contourner les règles.
- En-têtes de Request Smuggling.
- Variations d'injection d'en-tête Host.
- Remplacement de méthode HTTP via des en-têtes (
X-HTTP-Method-Override, etc.).