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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2022-31692 — Spring Securityの認証バイパス脆弱性CVE-2022-31692に脆弱なアプリを示すプロジェクト | Kitploit
ツール/GitHubGitHub/blipzip/cve-2022-31692
認証と認可脆弱性分析ウェブアプリケーション悪用ペネトレーションテスト学習と教育
GitHubblipzip/cve-2022-31692

cve-2022-31692

Spring Securityの認証バイパス脆弱性CVE-2022-31692に脆弱なアプリを示すプロジェクト

リポジトリを見る
3563年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2022-31692 デモ

概要

CVE-2022-31692 に対して脆弱な構成を示す、シンプルな Spring Boot アプリケーションです。

この脆弱性は、その深刻度から注目を集める可能性があります。認証バイパスを可能にするため、CVSS 3.x の基本スコアは 9.8 です。 このプロジェクトの目的は、アドバイザリに記載されている、脆弱性が適用可能となる条件を示すことです。

  • アプリケーションは、Spring Security がフォワードおよびインクルードのディスパッチャタイプにセキュリティを適用することを期待しています。
  • アプリケーションは、手動で、または authorizeHttpRequests() メソッドを介して AuthorizationFilter を使用します。
  • アプリケーションは、FilterChainProxy がフォワードおよび/またはインクルードリクエストに適用されるように構成します(例: spring.security.filter.dispatcher-types = request, error, async, forward, include)。
  • アプリケーションは、リクエストをより高い権限で保護されたエンドポイントにフォワードまたはインクルードする場合があります。
  • アプリケーションは、authorizeHttpRequests().shouldFilterAllDispatcherTypes(true) を介して、Spring Security がすべてのディスパッチャタイプに適用されるように構成します。

参考までに、脆弱性に対処するコミットはこれだと思います。

デモンストレーション

アプリケーションには3つのURLがあります。

  1. / インデックスページ
  2. /admin 管理者ページ。ユーザーは Basic 認証(認証情報は "user"/"pass")を提供し、ROLE_ADMIN ロールが割り当てられている必要があります。
  3. /forward 管理者ページへのサーバーサイドフォワード

アクセス制御は、SecurityConfig クラスの authorizeHttpRequests() で指定されています。

root@kitploit:~
.authorizeHttpRequests((authz) -> authz
	.antMatchers("/").permitAll()
	.antMatchers("/forward").permitAll()
	.antMatchers("/admin").hasAuthority("ROLE_ADMIN")
	.shouldFilterAllDispatcherTypes(true)
)

期待される動作

  1. ユーザーが / にアクセスすると、認証されません(permitAll() のおかげ)。

  2. ユーザーが /admin にアクセスします。認証を提供しないため、リクエストは拒否されます(401 Not authorized)。

  3. ユーザーが /admin にアクセスします。有効な認証を提供しますが、必要なロール .hasAuthority("ROLE_ADMIN") を持っていないため、リクエストは拒否されます(403 Unauthorised)。

  4. ユーザーが /forward にアクセスします。リクエストは GET /forward のセキュリティフィルタチェーンを通過し、permitAll() のおかげで有効と判定されます。コントローラーがリクエストを処理し、forward:/admin を Dispatcher に返します。spring.security.filter.dispatcher-types と .shouldFilterAllDispatcherTypes(true) 設定の指示により、これは FORWARD タイプであるため、フィルタチェーンをもう一度通過する必要があります。この2回目のフィルタ通過により、リクエストは拒否されます(再び hasAuthority("ROLE_ADMIN") のおかげ)。

実際の動作

ユーザーが /forward にアクセスすると、リクエストはフィルタチェーンを1回通過し、有効と判定されます。フォワードが処理されますが、チェーンをもう一度通過する代わりに、そのまま有効と判定され、管理者ページが返されます。

ツールをダウンロード