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é.

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

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
gotestwaf — Un projet open-source en Golang pour évaluer différents outils de sécurité API et WAF pour la logique de détection et les contournements. | Kitploit
Outils/GitHubGitHub/wallarm/gotestwaf
Scanners de VulnérabilitésScanners de Vulnérabilités WebTests de Sécurité des APIContournement de WAFSécurité WebTests d'IntrusionSécurité des APITop en Sécurité des API n°11Top en Tests de Sécurité des API n°11Top en Contournement de WAF n°3
1.8k26035il y a 4 joursVérifié par Kitploit
GitHubwallarm/gotestwaf

gotestwaf

Un projet open-source en Golang pour évaluer différents outils de sécurité API et WAF pour la logique de détection et les contournements.

Voir le dépôtSite web

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

GoTestWAF Black Hat Arsenal USA 2022

GoTestWAF est un outil de simulation d'attaques API et OWASP qui prend en charge un large éventail de protocoles API, notamment REST, GraphQL, gRPC, SOAP, XMLRPC, et d'autres.

Il a été conçu pour évaluer les solutions de sécurité des applications web, telles que les proxys de sécurité API, les pare-feu d'applications web (WAF), les IPS, les passerelles API, et autres.


  • Fonctionnement
  • Prérequis
  • Démarrage rapide avec Docker
  • Vérification des résultats d'évaluation
  • Démos
  • Autres options pour exécuter GoTestWAF
  • Options de configuration
  • Exécution avec la suite de tests de régression OWASP Core Rule Set

Fonctionnement

GoTestWAF génère des requêtes malveillantes à l'aide de charges utiles encodées placées dans différentes parties des requêtes HTTP : son corps, ses en-têtes, les paramètres d'URL, etc. Les requêtes générées sont envoyées à l'URL de la solution de sécurité applicative spécifiée lors du lancement de GoTestWAF. Les résultats de l'évaluation de la solution de sécurité sont enregistrés dans le fichier de rapport créé sur votre machine.

Les conditions par défaut pour la génération des requêtes sont définies dans le dossier testcases dans les fichiers YAML au format suivant :```yaml payload:

  • '"union select -7431.1, name, @aaa from u_base--w-'
  • "'or 123.22=123.22"
  • "' waitfor delay '00:00:10'--"
  • "')) or pg_sleep(5)--" encoder:
  • Base64Flat
  • URL
  • JSUnicode placeholder:
  • URLPath
  • URLParam
  • Header type: SQL Injection
* `payload` est un échantillon d'attaque malveillant (par exemple une charge utile XSS comme ```<script>alert(111)</script>``` ou quelque chose de plus sophistiqué).
Étant donné que le format de la chaîne YAML est requis pour les charges utiles, elles doivent être [encodées en données binaires](https://yaml.org/type/binary.html).

* `encoder` est un encodeur à appliquer à la charge utile avant de la placer dans la requête HTTP. Les encodeurs possibles sont :

    * Base64
    * Base64Flat
    * JSUnicode
    * URL
    * Plain (pour conserver la chaîne de charge utile telle quelle)
    * XML Entity

* `placeholder` est un emplacement à l'intérieur de la requête HTTP où la charge utile encodée doit se trouver. Les placeholders possibles sont :

    * gRPC
    * Header
    * UserAgent
    * RequestBody
    * JSONRequest
    * JSONBody
    * HTMLForm
    * HTMLMultipartForm
    * SOAPBody
    * XMLBody
    * URLParam
    * URLPath
    * RawRequest

    Le placeholder `RawRequest` vous permettra d'effectuer une requête HTTP arbitraire. La charge utile est substituée en remplaçant la chaîne `{{payload}}` dans le chemin URL, les en-têtes ou le corps. Champs du placeholder `RawRequest` :

    * `method`
    * `path`
    * `headers`
    * `body`

    Champs requis pour le placeholder `RawRequest` :
    
    * champ `method`

    Exemple :
    
    ```yaml
    payload:
      - test
    encoder:
      - Plain
    placeholder:
      - RawRequest:
          method: "POST"
          path: "/"
          headers:
            Content-Type: "multipart/form-data; boundary=boundary"
          body: |
            --boundary
            Content-disposition: form-data; name="field1"
            
            Test
            --boundary
            Content-disposition: form-data; name="field2"
            Content-Type: text/plain; charset=utf-7
            
            Knock knock.
            {{payload}}
            --boundary--
    type: RawRequest test
    ```

* `type` est un nom pour l'ensemble du groupe de charges utiles dans le fichier. Il peut être arbitraire, mais doit refléter le type d'attaques dans le fichier.

La génération de requêtes est un processus en trois étapes impliquant la multiplication du nombre de charges utiles par les nombres d'encodeurs et de placeholders.
Supposons que vous ayez défini 2 **charges utiles**, 3 **encodeurs** (Base64, JSUnicode et URL) et 1 **placeholder** (URLParameter - paramètre HTTP GET).
Dans ce cas, GoTestWAF enverra 2x3x1 = 6 requêtes dans un cas de test.

Lors du lancement de GoTestWAF, vous pouvez également choisir des cas de test parmi deux intégrés : OWASP Top-10, OWASP-API,
ou les vôtres (en utilisant l'[option de configuration](#configuration-options) `testCasePath`).

## Prérequis

* GoTestwaf prend en charge tous les systèmes d'exploitation populaires (Linux, Windows, macOS), et peut être compilé nativement
si [Go](https://golang.org/doc/install) est installé sur le système. Si vous souhaitez exécuter GoTestWaf nativement,
assurez-vous de disposer du navigateur web Chrome pour pouvoir générer des rapports PDF. Si vous n'avez pas Chrome,
vous pouvez créer un rapport au format HTML.
* Si vous exécutez GoTestWAF en tant que conteneur Docker, veuillez vous assurer que [Docker est installé et configuré](https://docs.docker.com/get-docker/),
et que GoTestWAF et la solution de sécurité applicative évaluée sont connectés au même [réseau Docker](https://docs.docker.com/network/).
* Pour que GoTestWAF démarre correctement, veuillez vous assurer que l'adresse IP de la machine exécutant GoTestWAF est autorisée
sur la machine exécutant la solution de sécurité applicative.

## Démarrage rapide avec Docker

Les étapes ci-dessous décrivent le téléchargement et le démarrage de GoTestWAF avec une configuration minimale sur Docker.

1.  Récupérez l'[image GoTestWAF](https://hub.docker.com/r/wallarm/gotestwaf) depuis Docker Hub :

    ```
    docker pull wallarm/gotestwaf
    ```

2.  Démarrez l'image GoTestWAF :

    ```sh
    docker run --rm --network="host" -it -v ${PWD}/reports:/app/reports \
        wallarm/gotestwaf --url=<EVALUATED_SECURITY_SOLUTION_URL>
    ```

    Si nécessaire, vous pouvez remplacer `${PWD}/reports` par le chemin d'un autre dossier utilisé pour placer le rapport d'évaluation.

    Si vous ne souhaitez pas envoyer le rapport par e-mail, appuyez simplement sur Entrée après l'apparition du message de demande d'e-mail, ou vous pouvez utiliser --noEmailReport pour ignorer le message :

    ```sh
    docker run --rm --network="host" -v ${PWD}/reports:/app/reports \
        wallarm/gotestwaf --url=<EVALUATED_SECURITY_SOLUTION_URL> --noEmailReport
    ```

    Si l'outil de sécurité évalué est disponible en externe, vous pouvez omettre l'option `--network="host"`. Cette option permet l'interaction des conteneurs Docker s'exécutant sur 127.0.0.1.

    Pour effectuer les tests gRPC, vous devez disposer d'un endpoint fonctionnel et utiliser l'option CLI --grpcPort <port>.

    ```sh
    docker run --rm --network="host" -it -v ${PWD}/reports:/app/reports \
        wallarm/gotestwaf --grpcPort 9000 --url=http://my.grpc.endpoint
    ```

3.  Consultez votre e-mail pour le rapport.

Vous avez évalué avec succès votre solution de sécurité applicative en utilisant GoTestWAF avec une configuration minimale.
Pour découvrir les options de configuration avancées, veuillez utiliser ce [lien](#configuration-options).

## Vérification des résultats d'évaluation
Télécharger l’outil