Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
waf-tester — Un programme pour tester les fonctionnalités WAF | Kitploit
Outils/GitHubGitHub/kpomin57/waf-tester
Scanners de VulnérabilitésÉvasion IDS/IPSTests de Sécurité des APIContournement de WAFSécurité WebTests d'IntrusionMauvaise ConfigurationApprentissage et Éducation
GitHubkpomin57/waf-tester

waf-tester

Un programme pour tester les fonctionnalités WAF

Voir le dépôt
2610il y a 3 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

🛡️ Testeur WAF

Outil d'évaluation WAF pour entreprise — Des charges d'attaque réelles. Des résultats réels. Des rapports prêts pour la conformité.

Le Testeur WAF évalue les pare-feu d'application web en envoyant des charges d'attaque réelles à une URL fournie par l'utilisateur et en signalant si elles sont bloquées. Disponible sous forme d'application de bureau Windows (Electron) et d'une CLI Python qui fonctionne partout.

Capture d'écran du Testeur WAF


⚠️ Avertissement légal

Cet outil est destiné uniquement aux tests de sécurité autorisés. Utilisez-le uniquement contre des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite. Les tests non autorisés de systèmes tiers peuvent violer le Computer Fraud and Abuse Act (CFAA) et les lois équivalentes dans votre juridiction. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive.


Fonctionnalités

Couverture de test — 90 tests répartis en 6 suites

SuiteTestsCe qu'elle couvre
OWASP / CWE Core44Injection SQL (12 variantes), XSS (10 variantes), traversée de chemin, injection de commande, XXE, SSRF, Log4Shell, SSTI, redirection ouverte
Rate Limiting3Rafale de requêtes (30 simultanées), rafale séquentielle, contournement par rotation IP via X-Forwarded-For
Bot Detection10sqlmap, Nikto, Nmap, Scrapy, Masscan, HeadlessChrome, python-requests, curl, UA vide, en-têtes Accept manquants
Bypass Attempts15Double encodage URL, Unicode pleine largeur, octets nuls, variation de casse, obfuscation par commentaire, injection CRLF, injection d'en-tête Host, substitution de méthode, astuces de chemin
API Security10Introspection / lot / énumération GraphQL, algorithme « none » et confusion d'algorithme JWT, affectation en masse, altération de verbe HTTP, BOLA, confusion de type de contenu
Business Logic8Quantité négative, soumission à prix zéro, accès à des points de terminaison admin, pollution de paramètres HTTP, énumération de comptes, exposition excessive de données, navigation forcée, escalade de privilèges

Correspondance de conformité

Chaque test est étiqueté avec un ou plusieurs cadres de conformité :

  • OWASP Top 10 2021 (A01–A10)
  • CWE (Common Weakness Enumeration)
  • NIST 800-53 (SI-10, AC-3, SC-5, IA-5, etc.)
  • PCI-DSS 4.0 (Exigence 6.4)

Intelligence de détection

  • Comparaison de référence — récupère une requête GET propre avant les tests, puis compare chaque réponse pour réduire les faux positifs
  • Score de confiance — les résultats sont notés ÉLEVÉ, PROBABLE ou INCERTAIN plutôt que binaires (réussi/échoué)
  • Évaluation multi-signaux — codes d'état, détection de mots-clés WAF et divergence de longueur de réponse contribuent tous au verdict

Prise en charge de l'authentification

  • Jeton Bearer
  • Clé API (nom d'en-tête personnalisé)
  • Cookie / jeton de session
  • Authentification de base (nom d'utilisateur + mot de passe)

Application de bureau Windows (Electron)

Prérequis

  • Node.js 18 ou ultérieur

Exécution à partir des sources

root@kitploit:~
git clone https://github.com/kpomin57/waf-tester.git
cd waf-tester
npm install
npm start

Création de l'installateur Windows

root@kitploit:~
npm run build

La sortie apparaît dans dist/ sous forme d'un installateur NSIS et d'un .exe portable. Aucun prérequis nécessaire sur la machine cible — Electron intègre son propre runtime.


Version CLI Python

Une version Python en un seul fichier qui fonctionne partout où Python est disponible — serveurs Linux, pipelines CI/CD, conteneurs Docker, WSL ou tout environnement où le .exe Windows n'est pas une option.

Prérequis

root@kitploit:~
pip install rich requests

Utilisation de base

root@kitploit:~
python waf_tester.py --url https://target.example.com

Exécute les 90 tests, demande une confirmation d'autorisation, affiche les résultats en couleur dans le terminal et enregistre un rapport JSON et HTML dans le répertoire courant.

Options

Exemples

root@kitploit:~
# Exécuter toutes les suites
python waf_tester.py --url https://app.example.com

# Exécuter uniquement les suites OWASP et API
python waf_tester.py --url https://app.example.com --suites owasp,api

# Authentification par jeton Bearer
python waf_tester.py --url https://app.example.com/api \
  --auth-type bearer --auth-value eyJhbGciOiJIUzI1NiJ9...

# Authentification par clé API
python waf_tester.py --url https://app.example.com/api \
  --auth-type apikey --auth-header X-API-Key --auth-value mykey123

# Enregistrer les rapports dans un dossier, ignorer la confirmation (CI/CD)
python waf_tester.py --url https://app.example.com \
  --output-dir ./reports --confirm

# Sortie terminal uniquement — aucun fichier enregistré
python waf_tester.py --url https://app.example.com --output terminal

# Acheminer le trafic via Burp Suite
python waf_tester.py --url https://app.example.com --proxy http://127.0.0.1:8080

Exécution dans Docker

root@kitploit:~
docker run --rm -v $(pwd)/reports:/reports \
  python:3.12-slim sh -c \
  "pip install rich requests -q && python waf_tester.py \
   --url https://target.example.com \
   --output-dir /reports --confirm"

Exécution dans CI/CD (GitHub Actions)

root@kitploit:~
- name: Évaluation WAF
  run: |
    pip install rich requests
    python waf_tester.py \
      --url ${{ secrets.WAF_TARGET_URL }} \
      --suites owasp,api,bypass \
      --output json \
      --output-dir ./reports \
      --confirm

- name: Téléversement du rapport
  uses: actions/upload-artifact@v3
  with:
    name: waf-report
    path: reports/

Intégration Burp Suite

La CLI Python peut acheminer tout le trafic de test via Burp Suite, vous donnant un historique HTTP complet de chaque charge utile envoyée par le Testeur WAF. Ceci est utile pour l'inspection manuelle des requêtes et réponses, le réglage fin des charges utiles, le dépannage des comportements inattendus du WAF, et l'utilisation du scanner ou du Repeater de Burp sur des résultats intéressants.

Fonctionnement

Burp Suite exécute un écouteur proxy local (par défaut 127.0.0.1:8080). Lorsque vous pointez les variables d'environnement proxy du Testeur WAF vers cette adresse, chaque requête que l'outil envoie passe par Burp avant d'atteindre la cible. Vous voyez chaque charge utile dans l'historique HTTP de Burp avec la requête et la réponse complètes — code d'état, en-têtes, corps — exactement comme le WAF l'a vue.

Configuration

1. Démarrez Burp Suite et confirmez que l'écouteur proxy est actif :

Ouvrez Burp → Proxy → Proxy Settings → confirmez que l'écouteur est sur 127.0.0.1:8080 (ou notez votre port s'il est différent).

2. Exportez le certificat CA de Burp et faites-lui confiance (configuration unique) :

Le Testeur WAF se connecte à des cibles HTTPS, donc Burp doit intercepter TLS. Allez dans Burp → Proxy → Proxy Settings → Import/Export CA Certificate → Exportez au format DER. Installez-le comme autorité de certification racine de confiance sur votre système, ou définissez la variable d'environnement ci-dessous pour ignorer la vérification (acceptable pour un laboratoire, pas en production).

3. Exécutez le Testeur WAF avec --proxy :

root@kitploit:~
python waf_tester.py --url https://target.example.com --proxy http://127.0.0.1:8080

Sous Windows :

root@kitploit:~
python waf_tester.py --url https://target.example.com --proxy http://127.0.0.1:8080

Vous pouvez également utiliser les variables d'environnement si vous préférez :

root@kitploit:~
HTTPS_PROXY=http://127.0.0.1:8080 HTTP_PROXY=http://127.0.0.1:8080 \
python waf_tester.py --url https://target.example.com

4. Désactivez l'interception dans Burp :

Dans Burp → Proxy → Intercept, assurez-vous que l'interception est désactivée — sinon Burp fera une pause sur chaque requête en attendant que vous la relâchiez manuellement, et le Testeur WAF expirera. Vous voulez que Burp enregistre passivement le trafic, pas qu'il l'intercepte.

5. Observez les requêtes arriver dans l'historique HTTP de Burp :

Chaque charge utile du Testeur WAF apparaît comme une entrée séparée. Vous pouvez cliquer droit sur n'importe quelle requête et l'envoyer à Repeater pour la modifier et la renvoyer manuellement, ou à Intruder pour un fuzzing plus poussé.

Si vous rencontrez des erreurs TLS

Si le certificat CA de Burp n'est pas reconnu, ajoutez une solution de contournement --no-verify en désactivant temporairement la vérification SSL dans l'outil. Sinon, faites confiance au certificat CA de Burp au niveau du système ou utilisez une cible HTTP (pas HTTPS) pour les premiers tests.


Interprétation des résultats

Niveaux de confiance :

  • ÉLEVÉ — blocage strict (403, 406, 429) sans ambiguïté
  • PROBABLE — mots-clés WAF dans le corps de la réponse, ou état différent de la référence
  • INCERTAIN — blocage souple (400, 503) qui pourrait être une erreur légitime de l'application

Flux de test recommandé

  1. Exécuter contre Juice Shop sans WAF → confirmer que la plupart sont contournés (l'outil fonctionne correctement)
  2. Exécuter contre ModSecurity/OWASP CRS → confirmer que la plupart sont bloqués (la logique de notation fonctionne)
  3. Exécuter contre votre WAF cible → résultats d'évaluation réels
root@kitploit:~
# Juice Shop (pas de WAF — s'attendre à ce que tout soit contourné)
docker run -d -p 3000:3000 bkimminich/juice-shop

# ModSecurity avec OWASP CRS (s'attendre à ce que la plupart soient bloqués)
docker run -d -p 80:80 owasp/modsecurity-crs:nginx

Structure du projet

root@kitploit:~
waf-tester/
├── src/
│   ├── main.js          # Processus principal Electron — toute la logique de test et IPC
│   ├── preload.js       # Pont de contexte sécurisé
│   └── renderer/
│       ├── index.html   # Coque de l'application
│       ├── styles.css   # Thème sombre militaire/SOC
│       └── app.js       # Logique UI, filtres, flux en direct, export
├── waf_tester.py        # CLI Python — un seul fichier, aucune configuration nécessaire
├── package.json
└── README.md

Journal des modifications

v1.2.0

  • Passage de 40 à 90 tests répartis en 6 suites
  • Ajout de la suite API Security (GraphQL, JWT, affectation en masse, BOLA, altération de verbe)
  • Ajout de la suite Business Logic (manipulation de prix, escalade de privilèges, navigation forcée)
  • Ajout d'étiquettes de conformité (OWASP, CWE, NIST, PCI-DSS) sur chaque test
  • Ajout d'un filtre par cadre dans la vue Résultats
  • Ajout de la CLI Python (waf_tester.py) — un seul fichier, fonctionne partout
  • Refonte complète de l'interface professionnelle — anneaux de score SVG, animation de ligne de balayage, fond hexadécimal

v1.1.0

  • Ajout de la prise en charge de l'authentification (Bearer, clé API, cookie, authentification de base)
  • Ajout de la comparaison de référence et du score de confiance (ÉLEVÉ / PROBABLE / INCERTAIN)
  • Ajout de la rotation du User-Agent sur 6 UAs navigateur réalistes
  • Ajout du basculement de l'en-tête X-WAF-Tester (opt-in, désactivé par défaut)
  • Ajout de la case à cocher d'autorisation avant chaque analyse
  • Correction de la visibilité du toast d'export et du plantage CRLF dans les tests de contournement

v1.0.0

  • Version initiale — 40 tests, 4 suites, export JSON + HTML

Licence

MIT — voir LICENSE pour les détails.


Conçu pour les ingénieurs en sécurité qui ont besoin d'une validation WAF allant au-delà de la simple conformité.

Télécharger l’outil
OptionDescriptionPar défaut
--urlURL cible (obligatoire)—
--suitesSuites à exécuter, séparées par des virgulestoutes
--auth-typenone / bearer / apikey / cookie / basicnone
--auth-valueJeton, chaîne de cookie, ou valeur de clé API—
--auth-headerNom de l'en-tête pour l'authentification par clé APIX-API-Key
--auth-userNom d'utilisateur pour l'authentification de base—
--auth-passMot de passe pour l'authentification de base—
--no-baselineDésactiver la comparaison de référencedésactivé
--no-rotate-uaDésactiver la rotation du User-Agentdésactivé
--waf-headerEnvoyer l'en-tête d'identification X-WAF-Testerdésactivé
--outputterminal, json, html (séparés par des virgules)les trois
--output-dirRépertoire pour enregistrer les fichiers de rapport.
--timeoutDélai d'attente par requête en secondes10
--proxyURL du proxy pour toutes les requêtes (ex. http://127.0.0.1:8080)désactivé
--confirmIgnorer la demande de confirmation d'autorisationdésactivé
ScoreNoteSignification
90–100 %AExcellent — le WAF bloque presque tous les vecteurs d'attaque
80–89 %BBon — lacunes mineures à examiner
65–79 %CMoyen — vecteurs de contournement notables présents
50–64 %DMédiocre — lacunes de protection significatives
< 50 %FCritique — le WAF est largement inefficace