Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
waf-tester — WAFの機能をテストするためのプログラム | Kitploit
ツール/GitHubGitHub/kpomin57/waf-tester
脆弱性スキャナーIDS/IPS回避APIセキュリティテストWAFバイパスウェブセキュリティペネトレーションテスト設定ミス学習と教育
GitHubkpomin57/waf-tester

waf-tester

WAFの機能をテストするためのプログラム

リポジトリを見る
26103ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

🛡️ WAF Tester

エンタープライズWAF評価ツール — 実際の攻撃ペイロード。実際の結果。コンプライアンス対応レポート。

WAF Testerは、ユーザーが指定したURLに実際の攻撃ペイロードを送信し、それらがブロックされたかどうかをレポートすることで、Webアプリケーションファイアウォール(WAF)を評価します。Windowsデスクトップアプリ(Electron)と、どこでも実行可能なPython CLIとして提供されます。

WAF Tester スクリーンショット


⚠️ 法的免責事項

このツールは、許可されたセキュリティテスト専用です。 自分が所有しているシステム、またはテストの明示的な書面による許可を得ているシステムに対してのみ使用してください。 第三者のシステムを許可なくテストすると、コンピュータ詐欺および不正使用防止法(CFAA)および管轄区域の同等の法律に違反する可能性があります。 著者は誤用に対する一切の責任を負いません。


特徴

テストカバレッジ — 6スイート、90テスト

スイートテスト数内容
OWASP / CWE コア44SQLインジェクション(12種類)、XSS(10種類)、パストラバーサル、コマンドインジェクション、XXE、SSRF、Log4Shell、SSTI、オープンリダイレクト
レート制限3バーストフラッド(30同時接続)、シーケンシャルフラッド、X-Forwarded-For IPローテーションによるバイパス
ボット検出10sqlmap、Nikto、Nmap、Scrapy、Masscan、HeadlessChrome、python-requests、curl、空のUA、Acceptヘッダー欠落
バイパス試行15二重URLエンコード、Unicode全角、ヌルバイト、大文字小文字の変化、コメント難読化、CRLFインジェクション、ホストヘッダーインジェクション、メソッドオーバーライド、パストリック
APIセキュリティ10GraphQLイントロスペクション/バッチ/列挙、JWT noneアルゴリズム & アルゴリズム混乱、大量割り当て、HTTP動詞改ざん、BOLA、コンテンツタイプ混乱
ビジネスロジック8負の数量、ゼロ価格の送信、管理エンドポイントへのアクセス、HTTPパラメータ汚染、アカウント列挙、過剰なデータ公開、強制ブラウジング、権限昇格

コンプライアンスマッピング

すべてのテストは、1つ以上のコンプライアンスフレームワークにタグ付けされています:

  • OWASP Top 10 2021 (A01–A10)
  • CWE (Common Weakness Enumeration)
  • NIST 800-53 (SI-10、AC-3、SC-5、IA-5 など)
  • PCI-DSS 4.0 (要件6.4)

検出インテリジェンス

  • ベースライン比較 — テスト実行前にクリーンなGETを取得し、各レスポンスと比較して誤検知を低減
  • 信頼度スコアリング — 結果はバイナリの合格/不合格ではなく、HIGH、LIKELY、UNCERTAIN で評価
  • マルチシグナル評価 — ステータスコード、WAFキーワード検出、レスポンス長の差異がすべて判定に影響

認証サポート

  • Bearerトークン
  • APIキー(カスタムヘッダー名)
  • Cookie / セッショントークン
  • Basic認証(ユーザー名 + パスワード)

Windowsデスクトップアプリ (Electron)

前提条件

  • Node.js 18 以降

ソースから実行

root@kitploit:~
git clone https://github.com/kpomin57/waf-tester.git
cd waf-tester
npm install
npm start

Windowsインストーラーのビルド

root@kitploit:~
npm run build

出力は dist/ に、NSISインストーラーとポータブル .exe の両方として生成されます。ターゲットマシンに前提条件は不要です — Electronが独自のランタイムをバンドルしています。


Python CLI バージョン

Pythonが利用可能な任意の環境(Linuxサーバー、CI/CDパイプライン、Dockerコンテナ、WSL、またはWindows .exe が使用できない環境)で実行できる単一ファイルのPythonバージョンです。

前提条件

root@kitploit:~
pip install rich requests

基本的な使用方法

root@kitploit:~
python waf_tester.py --url https://target.example.com

すべての90テストを実行し、許可確認を求め、色分けされた結果をターミナルに表示し、JSONレポートとHTMLレポートの両方をカレントディレクトリに保存します。

オプション

例

root@kitploit:~
# すべてのスイートを実行
python waf_tester.py --url https://app.example.com

# OWASPとAPIスイートのみ実行
python waf_tester.py --url https://app.example.com --suites owasp,api

# Bearerトークン認証
python waf_tester.py --url https://app.example.com/api \
  --auth-type bearer --auth-value eyJhbGciOiJIUzI1NiJ9...

# APIキー認証
python waf_tester.py --url https://app.example.com/api \
  --auth-type apikey --auth-header X-API-Key --auth-value mykey123

# レポートをフォルダに保存、確認をスキップ(CI/CD)
python waf_tester.py --url https://app.example.com \
  --output-dir ./reports --confirm

# ターミナル出力のみ — ファイルは保存しない
python waf_tester.py --url https://app.example.com --output terminal

# Burp Suite経由でトラフィックをルーティング
python waf_tester.py --url https://app.example.com --proxy http://127.0.0.1:8080

Dockerでの実行

root@kitploit:~
docker run --rm -v $(pwd)/reports:/reports \
  python:3.12-slim sh -c \
  "pip install rich requests -q && python waf_tester.py \
   --url https://target.example.com \
   --output-dir /reports --confirm"

CI/CDでの実行 (GitHub Actions)

root@kitploit:~
- name: WAF評価
  run: |
    pip install rich requests
    python waf_tester.py \
      --url ${{ secrets.WAF_TARGET_URL }} \
      --suites owasp,api,bypass \
      --output json \
      --output-dir ./reports \
      --confirm

- name: レポートのアップロード
  uses: actions/upload-artifact@v3
  with:
    name: waf-report
    path: reports/

Burp Suite 統合

Python CLIは、すべてのテストトラフィックをBurp Suite経由でルーティングできるため、WAF Testerが送信するすべてのペイロードの完全なHTTP履歴を取得できます。これは、リクエストとレスポンスの手動検査、ペイロードの微調整、予期しないWAF動作のトラブルシューティング、興味深い発見に対するBurp独自のスキャナーやリピーターの使用に役立ちます。

仕組み

Burp Suiteはローカルプロキシリスナー(デフォルト 127.0.0.1:8080)を実行します。WAF Testerのプロキシ環境変数をそのアドレスに向けると、ツールが行うすべてのリクエストがターゲットに到達する前にBurpを通過します。各ペイロードは、完全なリクエストとレスポンス(ステータスコード、ヘッダー、ボディ)とともにBurpのHTTP履歴に表示され、WAFが見たものとまったく同じになります。

セットアップ

1. Burp Suiteを起動し、プロキシリスナーがアクティブであることを確認します:

Burpを開く → Proxy → Proxy Settings → リスナーが 127.0.0.1:8080 で動作していることを確認します(異なる場合はポートをメモします)。

2. BurpのCA証明書をエクスポートして信頼します(初回のみ):

WAF TesterはHTTPSターゲットに接続するため、BurpはTLSをインターセプトする必要があります。Burp → Proxy → Proxy Settings → Import/Export CA Certificate → Export as DER に進みます。システムの信頼されたルートCAとしてインストールするか、以下の環境変数を設定して検証をスキップします(ラボでの使用には問題ありませんが、本番環境では推奨しません)。

3. --proxy を使用してWAF Testerを実行します:

root@kitploit:~
python waf_tester.py --url https://target.example.com --proxy http://127.0.0.1:8080

Windowsの場合:

root@kitploit:~
python waf_tester.py --url https://target.example.com --proxy http://127.0.0.1:8080

環境変数を使用することもできます:

root@kitploit:~
HTTPS_PROXY=http://127.0.0.1:8080 HTTP_PROXY=http://127.0.0.1:8080 \
python waf_tester.py --url https://target.example.com

4. Burpのインターセプトをオフにします:

Burp → Proxy → Intercept で、インターセプトがオフになっていることを確認します。そうしないと、Burpはリクエストごとに手動で転送するのを待って停止し、WAF Testerがタイムアウトします。Burpはトラフィックをインターセプトするのではなく、受動的にログに記録するようにします。

5. BurpのHTTP履歴にリクエストが到着するのを確認します:

各WAF Testerペイロードは個別のエントリとして表示されます。任意のリクエストを右クリックしてRepeaterに送信し、手動で調整して再送信したり、Intruderに送信してさらなるファジングを行うことができます。

TLSエラーが発生した場合

BurpのCA証明書が信頼されていない場合は、ツールのSSL検証を一時的に無効にする --no-verify 回避策を使用します。または、BurpのCA証明書をシステム全体で信頼するか、最初のテストにはHTTP(HTTPSではない)ターゲットを使用します。


結果の解釈

信頼度レベル:

  • HIGH — あいまいさのないハードブロックステータス(403、406、429)
  • LIKELY — レスポンスボディにWAFキーワードがある、またはステータスがベースラインと異なる
  • UNCERTAIN — ソフトブロック(400、503)で、正当なアプリエラーの可能性がある

推奨テストワークフロー

  1. WAFなしのJuice Shopに対して実行 → ほとんどがバイパスされることを確認(ツールが正しく動作している)
  2. ModSecurity / OWASP CRSに対して実行 → ほとんどがブロックされることを確認(スコアリングロジックが機能している)
  3. 対象のWAFに対して実行 → 実際の評価結果
root@kitploit:~
# Juice Shop(WAFなし — すべてバイパスされることを期待)
docker run -d -p 3000:3000 bkimminich/juice-shop

# ModSecurity with OWASP CRS(ほとんどブロックされることを期待)
docker run -d -p 80:80 owasp/modsecurity-crs:nginx

プロジェクト構成

root@kitploit:~
waf-tester/
├── src/
│   ├── main.js          # Electronメインプロセス — すべてのテストロジック & IPC
│   ├── preload.js       # セキュアコンテキストブリッジ
│   └── renderer/
│       ├── index.html   # アプリシェル
│       ├── styles.css   # ダークミリタリー/SOC UIテーマ
│       └── app.js       # UIロジック、フィルター、ライブフィード、エクスポート
├── waf_tester.py        # Python CLI — 単一ファイル、設定不要
├── package.json
└── README.md

変更履歴

v1.2.0

  • テスト数を40から90テスト、6スイートに拡大
  • APIセキュリティスイートを追加(GraphQL、JWT、大量割り当て、BOLA、動詞改ざん)
  • ビジネスロジックスイートを追加(価格操作、権限昇格、強制ブラウジング)
  • すべてのテストにコンプライアンスタグ(OWASP、CWE、NIST、PCI-DSS)を追加
  • 結果ビューにフレームワークフィルターを追加
  • Python CLI(waf_tester.py)を追加 — 単一ファイル、どこでも実行可能
  • エンタープライズUIの全面的な刷新 — SVGスコアリング、アニメーション化されたスキャンライン、ヘックスグリッド背景

v1.1.0

  • 認証サポートを追加(Bearer、APIキー、Cookie、Basic認証)
  • ベースライン比較と信頼度スコアリング(HIGH / LIKELY / UNCERTAIN)を追加
  • 6つの現実的なブラウザUAによるUser-Agentローテーションを追加
  • X-WAF-Testerヘッダートグルを追加(オプトイン、デフォルトオフ)
  • 各スキャン前に許可チェックボックスを追加
  • エクスポートトーストの表示とバイパステストでのCRLFクラッシュを修正

v1.0.0

  • 初回リリース — 40テスト、4スイート、JSON + HTMLエクスポート

ライセンス

MIT — 詳細はLICENSEを参照してください。


チェックボックスコンプライアンスを超えたWAF検証を必要とするセキュリティエンジニアのために作られました。

ツールをダウンロード
フラグ説明デフォルト
--urlターゲットURL (必須)—
--suites実行するスイート(カンマ区切り)all
--auth-typenone / bearer / apikey / cookie / basicnone
--auth-valueトークン、Cookie文字列、またはAPIキー値—
--auth-headerAPIキー認証用のヘッダー名X-API-Key
--auth-userBasic認証のユーザー名—
--auth-passBasic認証のパスワード—
--no-baselineベースライン比較を無効にするoff
--no-rotate-uaUser-Agentローテーションを無効にするoff
--waf-headerX-WAF-Tester 識別ヘッダーを送信するoff
--outputterminal、json、html(カンマ区切り)all three
--output-dirレポートファイルを保存するディレクトリ.
--timeoutリクエストごとのタイムアウト(秒)10
--proxy全リクエストのプロキシURL(例:http://127.0.0.1:8080)off
--confirm許可確認プロンプトをスキップするoff
スコア評価意味
90–100%A優秀 — WAFがほぼすべての攻撃ベクトルをブロック
80–89%B良好 — 調査すべき軽微なギャップあり
65–79%C普通 — 顕著なバイパスベクトルが存在
50–64%D低い — 保護に重大なギャップあり
< 50%F致命的 — WAFはほとんど効果なし