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-bypass — Outil automatisé de test de sécurité WAF qui détecte les faux positifs et les faux négatifs en utilisant plus de 15 catégories de charges utiles, notamment l'injection SQL, XSS, RCE et l'injection GraphQL. Prend en charge Docker, la sortie JSON et les charges utiles personnalisées. | Kitploit
Outils/GitHubGitHub/nemesida-waf/waf-bypass
Scanners de VulnérabilitésTests de Sécurité des APIContournement de WAFSécurité WebTests d'Intrusion
GitHubnemesida-waf/waf-bypass

waf-bypass

Voir le dépôt
1.5k185il y a 1 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 →

À propos

Outil automatisé de test de sécurité WAF qui détecte les faux positifs et les faux négatifs en utilisant plus de 15 catégories de charges utiles, notamment l'injection SQL, XSS, RCE et l'injection GraphQL. Prend en charge Docker, la sortie JSON et les charges utiles personnalisées.

Site web
Partager

WAF Bypass Tool

WAF Bypass Tool est un outil open source pour analyser la sécurité de tout WAF pour les faux positifs et faux négatifs en utilisant des charges utiles prédéfinies et personnalisables. Vérifiez votre WAF avant qu'un attaquant ne le fasse. WAF Bypass Tool est développé par l'équipe Nemesida WAF avec la participation de la communauté.

WAF Bypass Tool

Ne rien faire d'illégal

Il est interdit d'utiliser à des fins illégales. Ne violez pas la loi. Nous ne sommes pas responsables des risques possibles associés à l'utilisation de ce logiciel.

Comment exécuter

Exécution avec Docker

La dernière version de waf-bypass est toujours disponible via le Docker Hub. Elle peut être facilement téléchargée via la commande suivante :

root@kitploit:~
# docker pull nemesida/waf-bypass
# docker run nemesida/waf-bypass --host='example.com'

Exécution avec pipx

root@kitploit:~
# pipx install git+https://github.com/nemesida-waf/waf-bypass.git
# <pipx bin dir>/waf-bypass

Exécution directe à partir du code source en CLI

root@kitploit:~
# git clone https://github.com/nemesida-waf/waf_bypass.git /opt/waf-bypass/
# python3 -m pip install -r /opt/waf-bypass/requirements.txt
# python3 /opt/waf-bypass/main.py --host='example.com'

Options

  • '--proxy' (--proxy='http://proxy.example.com:3128') - option permettant de spécifier à quoi se connecter au lieu de l'hôte.

  • '--header' (--header 'Authorization: Basic YWRtaW46YWRtaW4=' --header 'X-TOKEN: ABCDEF') - option permettant de spécifier l'en-tête HTTP à envoyer avec toutes les requêtes (par exemple pour l'authentification). L'utilisation multiple est autorisée.

  • '--user-agent' (--user-agent 'MyUserAgent 1/1') - option permettant de spécifier l'en-tête HTTP User-Agent à envoyer avec toutes les requêtes, sauf lorsque le User-Agent est défini par la charge utile ("USER-AGENT").

  • '--block-code' (--block-code='403' --block-code='222') - option permettant de spécifier le code de statut HTTP attendu lorsque le WAF est bloqué. (par défaut ). L'utilisation multiple est autorisée.

Format JSON

Exemple de spécification de sortie JSON :

root@kitploit:~
{
  "TARGET": "https://example.com", // defined by --host option
  "PROXY": {},                     // defined by --proxy option
  "HEADERS": {                     // defined by --header option
    "User-Agent": ""
  },
  "BLOCK-CODE": [                  // defined by --block-code option
    ...
  ],
  "THREADS": 50,                   // defined by --threads option
  "TIMEOUT": 30,                   // defined by --timeout option
  "EXCLUDE-DIR": [                 // defined by --exclude-dir option
    ...
  ],
  "FAILED": {                      // requests with failed processing status
    "MFD/7.json": {
      "BODY": "WBHTTPSConnectionPool(host='example.com', port=443): Read timed out. (read timeout=1)"
    },
    ...
  },
  "PASSED": {                      // passed requests
    "UWA/3.json": {
      "URL": "403 RESPONSE CODE"
    },
    ...
  },
  "FALSED": {                      // requests with false positive processing status
    ...
  },
  "BYPASSED": {                    // requests with false negative processing status
    "UWA/26.json": {
      "URL": "200 RESPONSE CODE"
    },
    ...
  },
  "TestRequest": {                // test requests with processing status, exclude passed
    "FAILED": {},
    "FALSED": {
        "UWA/3.json": {
        "URL": "403 RESPONSE CODE"
        },
        ...
    }
    
  },
  "CURL": {                       // cURL command to reproduce false positive and false negative requests
    "FALSED": {},
    "BYPASSED": {
      "UWA/26.json": {
        "URL": "curl -X GET -H 'Accept: */*' -H 'Accept-Encoding: gzip, deflate' -H 'Connection: keep-alive' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36' 'https://example.com/do.php#.png'"
      },
      ...
    }
  }
}

Charges utiles

Selon l'objectif, les charges utiles sont situées dans les dossiers appropriés :

  • FP - Charges utiles de faux positifs
  • API - Charges utiles de test API
  • CM - Charges utiles de méthode HTTP personnalisée
  • GraphQL - Charges utiles de test GraphQL
  • LDAP - Charges utiles d'injection LDAP
  • LFI - Charges utiles d'inclusion de fichier local
  • MFD - Charges utiles multipart/form-data
  • NoSQLi - Charges utiles d'injection NoSQL
  • OR - Charges utiles de redirection ouverte
  • RCE - Charges utiles d'exécution de code à distance
  • RFI - Charges utiles d'inclusion de fichier distant
  • SQLi - Charges utiles d'injection SQL
  • SSI - Charges utiles d'inclusions côté serveur
  • SSRF - Charges utiles de falsification de requête côté serveur
  • SSTI - Charges utiles d'injection de template côté serveur
  • UWA - Charges utiles d'accès non souhaité
  • XSS - Charges utiles de cross-site scripting

Écrivez vos propres charges utiles

Lors de la compilation d'une charge utile, les zones, méthodes et options suivantes sont utilisées :

  • URL - chemin de la requête
  • ARGS - requête de la requête
  • BODY - corps de la requête
  • COOKIE - cookie de la requête
  • USER-AGENT - user-agent de la requête
  • REFERER - référent de la requête
  • HEADER - en-tête de la requête
  • METHOD - méthode de la requête
  • BOUNDARY - spécifie le contenu de la boundary de la requête. Applicable uniquement aux charges utiles dans le dossier MFD.
  • ENCODE - spécifie le type d'encodage de la charge utile (Base64, HTML-ENTITY, UTF-16) en plus de l'encodage pour la charge utile. Les valeurs multiples sont indiquées par un espace (par exemple Base64 UTF-16). Applicable uniquement aux zones ARGS, BODY, COOKIE et HEADER. Non applicable aux charges utiles dans les dossiers API et MFD. Non compatible avec l'option JSON.
  • JSON - spécifie que le corps de la requête doit être au format JSON
  • BLOCKED - spécifie si la requête doit être bloquée (test FN) ou non (FP)

Sauf pour certains cas décrits ci-dessous, les zones sont indépendantes les unes des autres et sont testées séparément (si 2 zones sont spécifiées, le script enverra 2 requêtes - en vérifiant alternativement une zone puis l'autre).

Pour les zones, vous pouvez utiliser le suffixe %RND%, qui permet de générer une chaîne arbitraire de 6 lettres et chiffres. (par exemple : param%RND=my_payload ou param=%RND% OU A%RND%B)

Vous pouvez créer vos propres charges utiles, pour cela, créez votre propre dossier dans le dossier '/payload/', ou placez la charge utile dans un dossier existant (par exemple : '/payload/XSS'). Le format de données autorisé est JSON.

Dossier API

Les charges utiles de test API situées dans ce dossier sont automatiquement accompagnées d'un en-tête 'Content-Type: application/json'.

Dossier MFD

Pour les charges utiles MFD (multipart/form-data) situées dans ce dossier, vous devez spécifier BODY (obligatoire) et BOUNDARY (optionnel). Si BOUNDARY n'est pas défini, il sera généré automatiquement (dans ce cas, seule la charge utile doit être spécifiée pour BODY, sans données supplémentaires ('... Content-Disposition: form-data; ...').

Si un BOUNDARY est spécifié, alors le contenu de BODY doit être formaté conformément à la RFC, mais cela permet d'avoir plusieurs charges utiles dans BODY séparées par BOUNDARY.

D'autres zones sont autorisées dans ce dossier (par exemple : URL, ARGS etc.). Quel que soit la zone, l'en-tête 'Content-Type: multipart/form-data; boundary=...' sera ajouté à toutes les requêtes.

Télécharger l’outil
403
  • '--threads' (--threads=15) - option permettant de spécifier le nombre de threads d'analyse parallèles (par défaut 10).

  • '--timeout' (--timeout=10) - option permettant de spécifier un délai d'attente de traitement des requêtes en secondes. (par défaut 30).

  • '--exclude-dir' - exclure le répertoire des charges utiles (--exclude-dir='SQLi,XSS').

  • '--json-format' - une option qui permet d'afficher le résultat du travail au format JSON (utile pour intégrer l'outil avec des plateformes de sécurité). Si l'option n'est pas spécifiée, la sortie sera au format tableau (le format par défaut).

  • '--details' - afficher les charges utiles de faux positifs et faux négatifs. Non compatible avec l'option --json-format.

  • '--no-progress' - ne pas afficher la barre de progression.

  • '--curl-replay' - afficher la commande cURL pour reproduire les requêtes de faux positifs, faux négatifs ou échouées. Non compatible avec l'option --json-format.