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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-42945-scan — NGINX設定をスキャンして、CVE-2026-42945の影響を受けているかどうかを確認します。 | Kitploit
ツール/GitHubGitHub/realityone/cve-2026-42945-scan
静的分析脆弱性スキャナー構成監査ウェブセキュリティ設定ミス
GitHubrealityone/cve-2026-42945-scan

cve-2026-42945-scan

NGINX設定をスキャンして、CVE-2026-42945の影響を受けているかどうかを確認します。

リポジトリを見る
133ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

cve-2026-42945-scan

NGINX設定ファイル用の静的スキャナで、CVE-2026-42945に関連するrewrite/setパターンを検出します。

このスキャナはcrossplaneを使用してNGINX設定を解析し、locationブロックを走査して、影響を受けていると思われるすべてのlocationを次の形式で出力します:

root@kitploit:~
/<path-to>/xxx.conf:<line-number> -> location XXXXX

例:

root@kitploit:~
/path/to/nginx.conf:39 -> location ~ ^/api/(.*)$

参照: CVE-2026-42945-POC。

必要条件

  • Python 3.10以降
  • uv

依存関係はpyproject.toml内でuvにより管理され、uv.lockでロックされています。実行時の依存関係はcrossplaneのみです。

セットアップ

リポジトリのルートから:

root@kitploit:~
uv sync

別途セットアップ手順を省略して、uv runに初回使用時に環境を作成させることもできます。

使用方法

1つの設定ファイルをスキャン:

root@kitploit:~
uv run ./scan.py /etc/nginx/nginx.conf

ディレクトリを再帰的にスキャン:

root@kitploit:~
uv run ./scan.py -r /etc/nginx

現在のディレクトリから*.confファイルを再帰的にスキャン:

root@kitploit:~
uv run ./scan.py -r './*.conf'

スキャナに再帰的にグロブを展開させたい場合は、グロブをクォートしてください。シェルが先に./*.confを展開すると、スキャナにはシェルがマッチしたファイルだけが渡されます。

指定されたファイルのみをスキャンし、includeディレクティブを追跡しない:

root@kitploit:~
uv run ./scan.py --single ./site.conf

パーサーの警告(存在しないincludeファイルを含む)を表示:

root@kitploit:~
uv run ./scan.py -v -r /etc/nginx

Go版

同じ出力形式と終了コードを持つGo実装がgo/にあります。NGINX設定の解析にはnginx-go-crossplaneを、CLIフラグにはpflagを使用しています。Go 1.23以降が必要です。

go runで実行:

root@kitploit:~
cd go
go run . -r ../tests/fixtures

検出結果がある場合、スキャナはコード1で終了します。その場合go runは余分なexit status 1行を出力します。スキャナの出力のみが必要な場合はバイナリをビルドしてください。

スタンドアロンバイナリをビルド:

root@kitploit:~
cd go
go build -o cve-2026-42945-scan-go .
./cve-2026-42945-scan-go -r ../tests/fixtures

検出対象

危険な設定パターンは、次の要素を含むlocationです:

  • 置換文字列にエスケープされていない?を含むrewriteディレクティブ
  • last、break、redirect、permanentのような終端リライトフラグがない
  • 後続のsetディレクティブが$1、${1}、$name、${name}のような正規表現キャプチャをコピーしている

脆弱なパターンの例:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}

スキャナはrewriteやsetの行ではなくlocationの行を報告します。これは、検査・修正の対象となるブロックがlocationだからです。

テストフィクスチャ

tests/fixtures/ディレクトリには、例として使用できる小さなNGINX設定が含まれています:

フィクスチャ期待される結果
tests/fixtures/vulnerable.conf位置キャプチャの検出結果を報告する
tests/fixtures/named_capture.conf名前付きキャプチャの検出結果を報告する
tests/fixtures/missing_include_still_scans.confincludeが欠落していても検出結果を報告する
tests/fixtures/safe_break_flag.confrewriteがbreakを使用しているため検出結果なし
tests/fixtures/safe_no_capture.confキャプチャがないため検出結果なし

すべてのサンプルフィクスチャに対してスキャナを実行:

root@kitploit:~
uv run ./scan.py -r tests/fixtures

期待される検出結果:

root@kitploit:~
/absolute/path/to/tests/fixtures/missing_include_still_scans.conf:6 -> location ~ ^/partial/(.*)$
/absolute/path/to/tests/fixtures/named_capture.conf:2 -> location /users
/absolute/path/to/tests/fixtures/vulnerable.conf:2 -> location ~ ^/api/(.*)$

出力

影響を受けるlocationが見つかった場合、各検出結果はそれぞれ1行で出力されます:

root@kitploit:~
/absolute/path/to/file.conf:30 -> location ~ ^/aaaa/dddd/(.*)$
/absolute/path/to/nginx.conf:39 -> location ~ ^/api/(.*)$

出力がない場合は、解析された設定に影響を受けるlocationが見つからなかったことを意味します。

制限事項

これは静的設定スキャナです。次のことは行いません:

  • 実行中のNGINXバージョンを検証する
  • 悪用可能性を証明する
  • サーバーに対してリクエストを実行またはテストする
  • 動的変数や生成された設定を完全に評価する
  • 欠落したincludeファイルに隠された脆弱なスニペットを検出する

検出結果は、レビューと修正が必要な場所として扱ってください。実際に影響を受けるのは、脆弱なNGINXバージョンの範囲と危険な設定パターンの両方が存在するホストのみです。

開発

テストスイートを実行:

root@kitploit:~
uv run python -m unittest discover -s tests -v

Goのテストスイートを実行:

root@kitploit:~
cd go
go test ./...

構文チェックを実行:

root@kitploit:~
uv run python -m py_compile scan.py

同梱のPOC設定に対して実行:

root@kitploit:~
uv run ./scan.py CVE-2026-42945-POC/env/nginx.conf

期待される出力:

root@kitploit:~
/absolute/path/to/CVE-2026-42945-POC/env/nginx.conf:39 -> location ~ ^/api/(.*)$
ツールをダウンロード