Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
gotestwaf — APIセキュリティツールやWAFの検出ロジックとバイパスを評価するためのGolang製オープンソースプロジェクト | Kitploit
ツール/GitHubGitHub/wallarm/gotestwaf
脆弱性スキャナーウェブ脆弱性スキャナーAPIセキュリティテストWAFバイパスウェブセキュリティペネトレーションテストAPIセキュリティAPIセキュリティ 第11位APIセキュリティテスト 第11位WAFバイパス 第3位
1.8k260375日前Kitploit レビュー済み
GitHubwallarm/gotestwaf

gotestwaf

APIセキュリティツールやWAFの検出ロジックとバイパスを評価するためのGolang製オープンソースプロジェクト

リポジトリを見るウェブサイト

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

GoTestWAF Black Hat Arsenal USA 2022

GoTestWAFは、APIおよびOWASP攻撃シミュレーション用のツールであり、 REST、GraphQL、gRPC、SOAP、XMLRPCなど、幅広いAPIプロトコルをサポートしています。

これは、APIセキュリティプロキシ、Webアプリケーションファイアウォール、 IPS、APIゲートウェイなどのWebアプリケーションセキュリティソリューションを評価するために設計されました。


  • 仕組み
  • 要件
  • Dockerでのクイックスタート
  • 評価結果の確認
  • デモ
  • GoTestWAFを実行するその他のオプション
  • 設定オプション
  • OWASP Core Rule Set回帰テストスイートでの実行

仕組み

GoTestWAFは、HTTPリクエストのさまざまな部分(ボディ、ヘッダー、 URLパラメータなど)に配置されたエンコード済みペイロードを使用して、悪意のあるリクエストを生成します。生成されたリクエストは、GoTestWAFの起動時に指定されたアプリケーションセキュリティソリューションのURLに送信されます。 セキュリティソリューションの評価結果は、お使いのマシン上に作成されるレポートファイルに記録されます。

リクエスト生成のデフォルト条件は、testcasesフォルダ内の以下の形式のYAMLファイルで定義されています:```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` は悪意のある攻撃サンプルです(例:```<script>alert(111)</script>``` のような XSS ペイロード、あるいはより巧妙なもの)。

ペイロードには YAML 文字列の形式が要求されるため、[バイナリデータとしてエンコード](https://yaml.org/type/binary.html)する必要があります。

* `encoder` は、ペイロードを HTTP リクエストに配置する前に適用するエンコーダーです。使用可能なエンコーダーは以下のとおりです:

    * Base64
    * Base64Flat
    * JSUnicode
    * URL
    * Plain(ペイロード文字列をそのまま保持)
    * XML Entity

* `placeholder` は、エンコードされたペイロードを配置する HTTP リクエスト内の場所です。使用可能なプレースホルダーは以下のとおりです:

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

    `RawRequest` プレースホルダーを使用すると、任意の HTTP リクエストを実行できます。ペイロードは、URL パス、ヘッダー、またはボディ内の文字列 `{{payload}}` を置換することで差し込まれます。`RawRequest` プレースホルダーのフィールド:

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

    `RawRequest` プレースホルダーの必須フィールド:
    
    * `method` フィールド

    例:
    
    ```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` は、ファイル内のペイロードグループ全体の名前です。任意の名前を付けられますが、ファイル内の攻撃の種類を反映したものにするべきです。

リクエスト生成は、ペイロード数にエンコーダー数とプレースホルダー数を掛け合わせる 3 段階のプロセスです。
例えば、2 つの **payload**、3 つの **encoder**(Base64、JSUnicode、URL)、1 つの **placeholder**(URLParameter - HTTP GET パラメーター)を定義したとします。
この場合、GoTestWAF はテストケース内で 2x3x1 = 6 件のリクエストを送信します。

GoTestWAF の起動時には、組み込みの 2 つのテストケース(OWASP Top-10、OWASP-API)または独自のテストケース([設定オプション](#configuration-options) `testCasePath` を使用)から選択することもできます。

## 要件

* GoTestwaf はすべての一般的なオペレーティングシステム(Linux、Windows、macOS)をサポートしており、システムに [Go](https://golang.org/doc/install) がインストールされていればネイティブにビルドできます。GoTestWaf をネイティブに実行する場合は、PDF レポートを生成できるよう Chrome ウェブブラウザーがあることを確認してください。Chrome がない場合は、HTML 形式でレポートを作成できます。
* GoTestWAF を Docker コンテナとして実行する場合は、[Docker がインストールおよび設定済み](https://docs.docker.com/get-docker/)であること、また GoTestWAF と評価対象のアプリケーションセキュリティソリューションが同じ [Docker ネットワーク](https://docs.docker.com/network/)に接続されていることを確認してください。
* GoTestWAF を正常に起動するには、GoTestWAF を実行するマシンの IP アドレスが、アプリケーションセキュリティソリューションを実行するマシンでホワイトリストに登録されていることを確認してください。

## Docker でのクイックスタート

以下の手順では、Docker 上で最小構成の GoTestWAF をダウンロードして起動する方法を説明します。

1.  Docker Hub から [GoTestWAF イメージ](https://hub.docker.com/r/wallarm/gotestwaf)をプルします:

    ```
    docker pull wallarm/gotestwaf
    ```

2.  GoTestWAF イメージを起動します:

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

    必要に応じて、`${PWD}/reports` を評価レポートを配置する別のフォルダーのパスに置き換えることができます。

    オプションでレポートをメール送信したくない場合は、メール要求メッセージが表示された後に Enter キーを押すだけで済みます。または、--noEmailReport を使用してメッセージをスキップできます:

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

    評価対象のセキュリティツールが外部から利用可能な場合は、オプション `--network="host"` を省略できます。このオプションは、127.0.0.1 で実行されている Docker コンテナの相互通信を可能にします。

    gRPC テストを実行するには、動作するエンドポイントがあり、--grpcPort <port> cli オプションを使用する必要があります。

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

3.  レポートについてメールを確認します。

最小構成の GoTestWAF を使用して、アプリケーションセキュリティソリューションの評価に成功しました。
高度な設定オプションについては、この[リンク](#configuration-options)を使用してください。

## 評価結果の確認
ツールをダウンロード