Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
gotestwaf — Ein Open-Source-Projekt in Golang zur Bewertung verschiedener API-Sicherheitstools und WAFs hinsichtlich Erkennungslogik und Umgehungen | Kitploit
Tools/GitHubGitHub/wallarm/gotestwaf
SchwachstellenscannerWeb-SchwachstellenscannerAPI-SicherheitstestsWAF-UmgehungWebsicherheitPenetrationstestsAPI-SicherheitTop in API-Sicherheit Nr.11Top in API-Sicherheitstests Nr.11Top in WAF-Umgehung Nr.3
1.8k26035vor 4 TagenVon Kitploit geprüft
GitHubwallarm/gotestwaf

gotestwaf

Ein Open-Source-Projekt in Golang zur Bewertung verschiedener API-Sicherheitstools und WAFs hinsichtlich Erkennungslogik und Umgehungen

Repository anzeigenWebseite

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

GoTestWAF Black Hat Arsenal USA 2022

GoTestWAF ist ein Tool zur Simulation von API- und OWASP-Angriffen, das eine breite Palette von API-Protokollen unterstützt, darunter REST, GraphQL, gRPC, SOAP, XMLRPC und andere.

Es wurde entwickelt, um Webanwendungssicherheitslösungen zu bewerten, wie z. B. API-Sicherheitsproxys, Web Application Firewalls, IPS, API-Gateways und andere.


  • Funktionsweise
  • Anforderungen
  • Schnellstart mit Docker
  • Überprüfung der Bewertungsergebnisse
  • Demos
  • Weitere Optionen zum Ausführen von GoTestWAF
  • Konfigurationsoptionen
  • Ausführung mit der OWASP Core Rule Set Regressionstest-Suite

Funktionsweise

GoTestWAF generiert bösartige Anfragen unter Verwendung kodierter Payloads, die an verschiedenen Stellen von HTTP-Anfragen platziert werden: im Body, in Headern, URL-Parametern usw. Die generierten Anfragen werden an die URL der Anwendungssicherheitslösung gesendet, die beim Start von GoTestWAF angegeben wurde. Die Ergebnisse der Bewertung der Sicherheitslösung werden in der Berichtsdatei aufgezeichnet, die auf Ihrem Rechner erstellt wird.

Die Standardbedingungen für die Anfragegenerierung sind im Ordner testcases in den YAML-Dateien des folgenden Formats definiert:```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` ist ein bösartiges Angriffsbeispiel (z. B. eine XSS-Payload wie ```<script>alert(111)</script>``` oder etwas Ausgefeilteres).
Da das Format des YAML-Strings für Payloads erforderlich ist, müssen sie [als Binärdaten kodiert werden](https://yaml.org/type/binary.html).

* `encoder` ist ein Encoder, der auf die Payload angewendet wird, bevor sie in die HTTP-Anfrage eingefügt wird. Mögliche Encoder sind:

    * Base64
    * Base64Flat
    * JSUnicode
    * URL
    * Plain (um die Payload-Zeichenkette unverändert zu lassen)
    * XML Entity

* `placeholder` ist eine Stelle innerhalb der HTTP-Anfrage, an der die kodierte Payload stehen soll. Mögliche Platzhalter sind:

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

    Der Platzhalter `RawRequest` ermöglicht es Ihnen, eine beliebige HTTP-Anfrage durchzuführen. Die Payload wird ersetzt, indem die Zeichenkette `{{payload}}` im URL-Pfad, in den Headern oder im Body ersetzt wird. Felder des Platzhalters `RawRequest`:

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

    Erforderliche Felder für den Platzhalter `RawRequest`:
    
    * Feld `method`

    Beispiel:
    
    ```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` ist ein Name für die gesamte Gruppe der Payloads in der Datei. Er kann beliebig sein, sollte aber die Art der Angriffe in der Datei widerspiegeln.

Die Anfragegenerierung ist ein dreistufiger Prozess, bei dem die Anzahl der Payloads mit der Anzahl der Encoder und Platzhalter multipliziert wird.
Angenommen, Sie haben 2 **Payloads**, 3 **Encoder** (Base64, JSUnicode und URL) und 1 **Platzhalter** (URLParameter - HTTP-GET-Parameter) definiert.
In diesem Fall sendet GoTestWAF 2x3x1 = 6 Anfragen in einem Testfall.

Beim Start von GoTestWAF können Sie außerdem zwischen zwei eingebetteten Testfällen wählen: OWASP Top-10, OWASP-API,
oder Ihren eigenen (mithilfe der [Konfigurationsoption](#configuration-options) `testCasePath`).

## Anforderungen

* GoTestwaf unterstützt alle gängigen Betriebssysteme (Linux, Windows, macOS) und kann nativ gebaut werden,
wenn [Go](https://golang.org/doc/install) im System installiert ist. Wenn Sie GoTestWaf nativ ausführen möchten,
stellen Sie sicher, dass Sie den Chrome-Webbrowser haben, um PDF-Berichte generieren zu können. Falls Sie Chrome nicht haben,
können Sie einen Bericht im HTML-Format erstellen.
* Wenn Sie GoTestWAF als Docker-Container ausführen, stellen Sie bitte sicher, dass Sie [Docker installiert und konfiguriert haben](https://docs.docker.com/get-docker/),
und dass GoTestWAF und die evaluierte Anwendungssicherheitslösung mit demselben [Docker-Netzwerk](https://docs.docker.com/network/) verbunden sind.
* Damit GoTestWAF erfolgreich gestartet werden kann, stellen Sie bitte sicher, dass die IP-Adresse der Maschine, auf der GoTestWAF läuft, auf der Maschine, auf der die Anwendungssicherheitslösung läuft, auf der Whitelist steht.

## Schnellstart mit Docker

Die folgenden Schritte führen durch das Herunterladen und Starten von GoTestWAF mit minimaler Konfiguration auf Docker.

1.  Ziehen Sie das [GoTestWAF-Image](https://hub.docker.com/r/wallarm/gotestwaf) von Docker Hub:

    ```
    docker pull wallarm/gotestwaf
    ```

2.  Starten Sie das GoTestWAF-Image:

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

    Falls erforderlich, können Sie `${PWD}/reports` durch den Pfad zu einem anderen Ordner ersetzen, der zum Ablegen des Evaluierungsberichts verwendet wird.

    Wenn Sie den Bericht nicht optional per E-Mail versenden möchten, drücken Sie einfach die Eingabetaste, nachdem die E-Mail-Anfrage-Nachricht erscheint, oder Sie können --noEmailReport verwenden, um die Nachricht zu überspringen:

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

    Wenn das evaluierte Sicherheitstool extern verfügbar ist, können Sie die Option `--network="host"` weglassen. Diese Option ermöglicht die Interaktion von Docker-Containern, die auf 127.0.0.1 laufen.

    Um die gRPC-Tests durchzuführen, müssen Sie einen funktionierenden Endpunkt haben und die CLI-Option --grpcPort <port> verwenden.

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

3.  Prüfen Sie Ihre E-Mail auf den Bericht.

Sie haben Ihre Anwendungssicherheitslösung erfolgreich mit GoTestWAF und minimaler Konfiguration evaluiert.
Um erweiterte Konfigurationsoptionen kennenzulernen, verwenden Sie bitte diesen [Link](#configuration-options).

## Überprüfen der Evaluierungsergebnisse
Tool herunterladen