Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
WAF-A-MoLE — Un fuzzer guidé par mutation pour les pare-feu d'applications Web basés sur l'apprentissage automatique | Kitploit
Outils/GitHubGitHub/avalz/waf-a-mole
Contournement de WAFSécurité WebFuzzingApprentissage AutomatiqueAttaque Adversariale
GitHubavalz/waf-a-mole

WAF-A-MoLE

Un fuzzer guidé par mutation pour les pare-feu d'applications Web basés sur l'apprentissage automatique

Voir le dépôt
2053348il y a 2 ansVé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

WAF-A-MoLE

Un fuzzer guidé par mutations pour les pare-feu d'applications web (WAF) basés sur l'apprentissage automatique, inspiré par AFL et basé sur le FuzzingBook d'Andreas Zeller et al.

Étant donnée une requête d'injection SQL, il tente de produire une requête sémantiquement invariante capable de contourner le WAF cible. Vous pouvez utiliser cet outil pour évaluer la robustesse de votre produit en laissant WAF-A-MoLE explorer l'espace des solutions pour trouver les « angles morts » dangereux laissés par le classifieur cible.

Python Version License Documentation Status

Architecture

Architecture de WAF-A-MoLE

WAF-A-MoLE prend une charge utile initiale et l'insère dans le Pool de charges utiles, qui gère une file de priorité ordonnée par le score de confiance du WAF pour chaque charge utile.

Lors de chaque itération, la tête du Pool de charges utiles est transmise au Fuzzer, où elle est mutée aléatoirement en appliquant l'un des opérateurs de mutation disponibles.

Opérateurs de mutation

Les opérateurs de mutation sont tous préservant la sémantique et exploitent la grande expressivité du langage SQL (dans cette version, MySQL).

Voici les opérateurs de mutation disponibles dans la version actuelle de WAF-A-MoLE.

MutationExemple
Changement de casseadmin' OR 1=1# ⇒ admin' oR 1=1#
Substitution d'espaces blancsadmin' OR 1=1# ⇒ admin'\t\rOR\n1=1#
Injection de commentaireadmin' OR 1=1# ⇒ admin'/**/OR 1=1#
Réécriture de commentaireadmin'/**/OR 1=1# ⇒ admin'/*xyz*/OR 1=1#abc
Encodage d'entieradmin' OR 1=1# ⇒ admin' OR 0x1=(SELECT 1)#
Échange d'opérateuradmin' OR 1=1# ⇒ admin' OR 1 LIKE 1#
Invariant logiqueadmin' OR 1=1# ⇒ admin' OR 1=1 AND 0<1#
Mélange de nombresadmin' OR 1=1# ⇒ admin' OR 2=2#

Comment nous citer

WAF-A-MoLE implémente la méthodologie présentée dans "WAF-A-MoLE: Evading Web Application Firewalls through Adversarial Machine Learning". Une prépublication de notre article est également disponible sur arXiv.

Si vous souhaitez nous citer, veuillez utiliser la référence (BibTeX) suivante :

@inproceedings{demetrio20wafamole,
  title={WAF-A-MoLE: evading web application firewalls through adversarial machine learning},
  author={Demetrio, Luca and Valenza, Andrea and Costa, Gabriele and Lagorio, Giovanni},
  booktitle={Proceedings of the 35th Annual ACM Symposium on Applied Computing},
  pages={1745--1752},
  year={2020}
}

Exécution de WAF-A-MoLE

Prérequis

  • numpy
  • keras
  • scikit-learn
  • joblib
  • sqlparse
  • networkx
  • Click

Installation

pip install -r requirements.txt

Exemple d'utilisation

Vous pouvez évaluer la robustesse de votre propre WAF, ou essayer WAF-A-MoLE contre quelques classifieurs d'exemple. Dans le premier cas, jetez un œil à la classe Model. Votre modèle personnalisé doit implémenter cette classe pour être évalué par WAF-A-MoLE. Nous fournissons déjà des adaptateurs pour les classifieurs sci-kit learn et keras qui peuvent être étendus pour s'adapter à votre phase d'extraction de caractéristiques (si elle existe).

Aide

wafamole --help

Usage: wafamole [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  evade  Launch WAF-A-MoLE against a target classifier.

wafamole evade --help

Usage: wafamole evade [OPTIONS] MODEL_PATH PAYLOAD

  Launch WAF-A-MoLE against a target classifier.

Options:
  -T, --model-type TEXT     Type of classifier to load
  -t, --timeout INTEGER     Timeout when evading the model
  -r, --max-rounds INTEGER  Maximum number of fuzzing rounds
  -s, --round-size INTEGER  Fuzzing step size for each round (parallel fuzzing
                            steps)
  --threshold FLOAT         Classification threshold of the target WAF [0.5]
  --random-engine TEXT      Use random transformations instead of evolution
                            engine. Set the number of trials
  --output-path TEXT        Location were to save the results of the random
                            engine. NOT USED WITH REGULAR EVOLUTION ENGINE
  --help                    Show this message and exit.

Contournement des modèles d'exemple

Nous fournissons quelques modèles pré-entraînés avec lesquels vous pouvez vous amuser, situés dans wafamole/models/custom/example_models. Les classifieurs que nous avons utilisés sont listés dans le tableau ci-dessous.

Nom du classifieurAlgorithme
WafBrainRéseau de neurones récurrents
ML-Based-WAFSVM non linéaire
ML-Based-WAFDescente de gradient stochastique
ML-Based-WAFAdaBoost
Basé sur les jetonsNaive Bayes
Basé sur les jetonsForêt aléatoire
Basé sur les jetonsSVM linéaire
Basé sur les jetonsSVM gaussien
SQLiGoT - Proportionnel dirigéSVM gaussien
SQLiGoT - Non proportionnel dirigéSVM gaussien
SQLiGoT - Proportionnel non dirigéSVM gaussien
SQLiGoT - Non proportionnel non dirigéSVM gaussien

En plus du WAF basé sur l'apprentissage automatique, WAF-a-MoLE supporte également les WAF basés sur des règles. Plus précisément, il fournit un adaptateur pour le WAF ModSecurity équipé du OWASP Core Rule Set (CRS), basé sur le projet pymodsecurity.

WAF-BRAIN - Réseau de neurones récurrents

Contourner le classifieur WAF-Brain pré-entraîné en utilisant un équivalent de admin' OR 1=1#.

wafamole evade --model-type waf-brain wafamole/models/custom/example_models/waf-brain.h5  "admin' OR 1=1#"

ML-Based-WAF - SVM non linéaire (avec le jeu de données original WAF-A-MoLE)

Contourner le classifieur SVM ML-Based-WAF pré-entraîné en utilisant un équivalent de admin' OR 1=1#.

wafamole evade --model-type mlbasedwaf wafamole/models/custom/example_models/mlbasedwaf_svc.dump  "admin' OR 1=1#"
Télécharger l’outil