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-fu — Interface utilisateur terminal pour parcourir et rejouer les journaux AWS WAF v2 depuis CloudWatch, S3 et l'API d'échantillonnage, avec filtrage YAML, détection d'authentification et rejeu via curl/navigateur. | Kitploit
Outils/GitHubGitHub/confused-binary/waf-fu
Outils DéfensifsSniffing et Analyse de PaquetsProxies Web et InterceptionCollecte d'InformationsSécurité WebSécurité CloudUtilitaires et FrameworksRéponse aux IncidentsAnalyse de Journaux
GitHubconfused-binary/waf-fu

waf-fu

Interface utilisateur terminal pour parcourir et rejouer les journaux AWS WAF v2 depuis CloudWatch, S3 et l'API d'échantillonnage, avec filtrage YAML, détection d'authentification et rejeu via curl/navigateur.

2il y a 1 moisPas encore vérifié
Voir le dépôt

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-fu

Navigateur et rejoueur de journaux AWS WAF v2 avec une TUI interactive. Récupère les journaux depuis CloudWatch, S3 et l'API d'échantillonnage WAF (avec mise en cache SQLite), les affiche dans une interface terminal à volets divisés avec détection d'authentification et filtrage basé sur YAML, et rejoue les requêtes via Firefox, Chrome ou curl avec une fidélité complète des en-têtes/cookies/corps. Prend en charge l'export par lots vers curl, JSON et HAR.

Installation

Depuis PyPI

uv pip install waf-fu

pipx install waf-fu

Depuis git

uv pip install git+https://gitrdun.trustedsec.net/cloud/aws/waf-fu.git

pipx install git+https://gitrdun.trustedsec.net/cloud/aws/waf-fu.git

Depuis un clone local

git clone https://gitrdun.trustedsec.net/cloud/aws/waf-fu.git
cd waf-fu

uv pip install .

pipx install .

Le fichier uv.toml inclus configure uv pip pour installer dans le Python système plutôt que de créer un virtualenv. pipx et uv tool install utilisent toujours leurs propres environnements isolés.

Prérequis

Python >= 3.12

Identifiants AWS configurés via profil, variables d'environnement ou rôle d'instance. Voir Permissions IAM pour les prérequis par source.

Paquets Python

PaquetVersion minRequis pour
boto3anyRécupération des journaux AWS
selenium4.26Rejeu Chrome et Firefox
trioanyInternes du rejeu Chrome CDP

boto3 et selenium sont déclarés dans pyproject.toml et installés automatiquement. trio est une dépendance transitive du backend Chrome.

Backends de rejeu navigateur

Le rejeu navigateur est optionnel. Le rejeu curl fonctionne sans dépendance supplémentaire.

Firefox (recommandé pour la fidélité des en-têtes) :

ComposantVersion minInstallation
Firefox120sudo dnf install firefox / sudo apt install firefox
geckodriver0.35.0sudo dnf install geckodriver / sudo apt install firefox-geckodriver ou github.com/mozilla/geckodriver/releases (>= 0.35.0)
selenium4.26uv pip install 'selenium>=4.26'

Le rejeu Firefox utilise l'interception réseau WebDriver BiDi pour injecter la méthode, les en-têtes, les cookies et le corps de la requête d'origine. Le support réseau BiDi nécessite geckodriver >= 0.35 et selenium >= 4.26. Les versions antérieures se rabattent sur une approche basée sur XHR qui ne peut pas injecter d'en-têtes personnalisés.

Chrome / Chromium :

ComposantVersion minInstallation
Chrome118sudo dnf install google-chrome-stable / sudo apt install google-chrome-stable ou Chromium
chromedriver118sudo dnf install chromedriver / sudo apt install chromium-driver ou googlechromelabs.github.io/chrome-for-testing
selenium4.26uv pip install 'selenium>=4.26'

Le rejeu Chrome utilise le domaine Fetch de CDP (Chrome DevTools Protocol) pour intercepter et modifier les requêtes. La méthode, les en-têtes, le corps et les cookies sont tous injectés via CDP.

Les chemins des pilotes peuvent être remplacés avec --chromedriver PATH et --geckodriver PATH si la détection automatique ne trouve pas le bon binaire.

Démarrage rapide

# TUI interactive -- parcourir et rejouer
waf-fu --log-group "aws-waf-logs-my-acl"

# Pas de groupe de journaux -- sélection interactive parmi les groupes découverts
waf-fu --profile myprofile --region us-east-1

# Journaux WAF S3 au lieu de CloudWatch
waf-fu --s3-bucket aws-waf-logs-my-bucket

# Découvrir et récupérer toutes les sources de journaux dans toutes les régions
waf-fu --inventory

# Pré-filtrer avant l'ouverture de la TUI
waf-fu --start 4h --action BLOCK

# Mode hors ligne -- enregistrements en cache uniquement, aucun appel AWS
waf-fu --db-only

# Rejouer via un proxy (Burp, mitmproxy, etc.)
waf-fu --log-group "aws-waf-logs-my-acl" --proxy 127.0.0.1:8080

# Export par lots non interactif
waf-fu --log-group "aws-waf-logs-my-acl" --mode batch-curl -o replay.sh

# Exporter les enregistrements en cache vers JSON
waf-fu --export logs.json

# Mode débogage -- journaliser les détails du rejeu dans un fichier (données client expurgées)
waf-fu --log-group "aws-waf-logs-my-acl" --debug

Sources de journaux

waf-fu récupère les journaux WAF depuis trois sources et les fusionne par requête :

SourceOption CLIDonnées
CloudWatch--log-group (par défaut)JSON complet du journal WAF (en-têtes, URI, requête, action)
S3--s3-bucketIdentique à CloudWatch, depuis la livraison S3
API WAF--log-location wafRequêtes échantillonnées avec champs non expurgés

Utilisez --log-location cwl|s3|waf pour restreindre à une seule source, ou --inventory pour découvrir et récupérer automatiquement toutes les sources dans toutes les régions.

Les enregistrements de différentes sources sont fusionnés par clé de corrélation afin que vous voyiez une vue unifiée unique par requête, avec les données les plus riches de chacune.

Permissions IAM

Chaque source nécessite ses propres permissions IAM, limitées aux options CLI qui la déclenchent.

CloudWatch Logs

Requis pour : opération par défaut, --log-location cwl

  • logs:FilterLogEvents -- récupérer les enregistrements de journaux depuis CloudWatch
  • logs:DescribeLogGroups -- découvrir les groupes de journaux correspondant à aws-waf-logs-*

S3

Requis pour : --s3-bucket, --log-location s3, --inventory

  • s3:ListAllMyBuckets -- découvrir les buckets de journaux WAF par préfixe de nom
  • s3:ListBucket -- lister les objets de journaux dans un bucket de journaux WAF
  • s3:GetObject -- télécharger les fichiers de journaux compressés en gzip

WAFv2

Requis pour : --log-location waf, --inventory, enrichissement automatique

  • wafv2:ListWebACLs -- découvrir les web ACLs
  • wafv2:GetWebACL -- énumérer les règles pour les requêtes de demandes échantillonnées
  • wafv2:GetLoggingConfiguration -- découvrir quelles destinations de journaux (CWL, S3) une ACL utilise
  • wafv2:GetSampledRequests -- récupérer des échantillons de requêtes non expurgés (contourne RedactedFields)

Minimum viable : seules les permissions CloudWatch Logs sont requises. Les permissions S3 et WAFv2 sont optionnelles et activent des sources de données supplémentaires. L'outil se rabat gracieusement lorsque les permissions sont manquantes.

Télécharger l’outil