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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2023-22515 — CVE-2023-22515のステップバイステップのエクスプロイトウォークスルー。Atlassian Confluence ServerおよびData Centerの重大なアクセス制御の欠陥で、リモートでの管理者アカウント作成を可能にする。 | Kitploit
ツール/GitHubGitHub/tranphuc2005/cve-2023-22515
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育
GitHubtranphuc2005/cve-2023-22515

CVE-2023-22515

CVE-2023-22515のステップバイステップのエクスプロイトウォークスルー。Atlassian Confluence ServerおよびData Centerの重大なアクセス制御の欠陥で、リモートでの管理者アカウント作成を可能にする。

リポジトリを見る
11年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2023-22515

CVE-2023-22515 の基本情報

  • 影響を受ける製品: Atlassian Confluence Data Center & Confluence Server。

  • 公開日: 2023年10月4日。

  • 深刻度: Critical (CVSS ~ 10.0)。

  • 脆弱性の種類: Broken Access Control / Improper Authorization → 攻撃者がリモートから管理者アカウントを作成できる。

  • 脆弱性は Confluence setup mechanism に存在する。

  • 影響: Confluence Data Center & Server 8.0.0 → 8.5.1。

脆弱性調査の実装

  • 最初に Confluence をインストールする際、サーバーを動作させるための設定手順があります。例: データベース接続、ユーザー作成など。これらの作業は WEB ブラウザーと URL パス /setup/ を通じて実行されます。設定の最後のステップは /setup/setupadministrator.action です。
  • セットアップ完了後、これらの設定は呼び出されません。呼び出そうとするとエラーメッセージが表示されます。

1

  • これは、struts.xml のインターセプターの1つである SetupCheckInterceptor に起因します。

    • struts.xml は Struts のです。

中心的な設定ファイル
  • Confluence が URL → Action クラス → View テンプレートへマッピングする方法を定義します。

  • また、インターセプター (アクション実行前後にリクエストを処理するクラス) を宣言します。

  • 1

    SetupCheckInterceptor 内で BootstrapUtils.getBootstrapManager().isSetupComplete() が呼び出されます。

    root@kitploit:~
    public String intercept(ActionInvocation actionInvocation) throws Exception {
        if (BootstrapUtils.getBootstrapManager().isSetupComplete() && ContainerManager.isContainerSetup())
            return "alreadysetup"; 
        return actionInvocation.invoke();
    }
    

    解説

    • BootstrapUtils.getBootstrapManager().isSetupComplete()
      → Confluence のセットアッププロセス (ウィザード、ライセンス入力、管理者ユーザー作成など) が完了しているかどうかを確認します。

    • ContainerManager.isContainerSetup()
      → Spring IoC コンテナーが完全に初期化されているかどうかを確認します。

    • 両方の条件が true の場合:
      → システムはセットアップが完了していることを意味します → インターセプターは即座に "alreadysetup" を返します。
      → アクションは実行されません (通常は SetupDatabaseAction、SetupLicenseAction などのセットアップアクション)。

    • セットアップが未完了の場合:
      → actionInvocation.invoke() を呼び出します → つまり、ユーザーがリクエストしたアクションの実行を続行します。

    getBootstrapManager() → 通常は DefaultAtlassianBootstrapManager を返します。これはセットアップ中にコアとなる全設定情報を管理します。

    • DefaultAtlassianBootstrapManager.isSetupComplete では、アプリケーション設定メソッド isSetupComplete が呼び出され、セットアッププロセスが完了しているかどうかが確認されることがわかります。

    1

    => isSetupComplete を False にすると、SetupCheckInterceptor は "alreadysetup" を返さなくなり、/setup/setupadministrator.action にアクセスできるようになります。

    次に、ServerInfoAction があります。

    • ServerInfoAction は Confluence 内の公開アクションです → ログイン不要、CSRF トークン不要で誰でも呼び出せます。実行時には "success" を返すだけで、サーバー情報を表示するテンプレートにマッピングされます。

    1

    • ConfluenceActionSupport を継承しています。
    • ConfluenceActionSupport 内で、getBootstrapStatusProvider が目的の BootstrapStatusProviderImpl を返すことがわかります。

    1

    • BootstrapStatusProviderImpl には、アプリケーション設定を返す getApplicationConfig があります。

    1

    • 最後に、ApplicationConfig の内部で setSetupComplete のチェックが実装されていることが確認できます。

    1

    • 上記の要素を組み合わせると、setSetupComplete を false に変更するための一連のメソッド呼び出しを導き出せます。
    root@kitploit:~
    getBootstrapStatusProvider(). getApplicationConfig (). setSetupComplete ( false );
    
    • XWorks2 ではこの種の getter/setter チェーンを実行できます。XWorks2 が要求する記法を使用して、上記のメソッド呼び出しチェーンを実行する HTTP パラメーターを構築できます。
    root@kitploit:~
    bootstrapStatusProvider.applicationConfig.setupComplete=false
    
    • ログイン不要の公開エンドポイントであるため、Confluence 内の URL /server-info.action を利用します。この URL は ServerInfoAction によって処理されます。
    root@kitploit:~
    /server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false
    

    1

    デバッグを確認します:

    • setupComplete (メソッドに渡されるパラメーター)
      → false
      つまり、メソッドはパラメーター false で呼び出されています。

    • this.setupComplete (ApplicationConfig オブジェクトのインスタンス変数)
      → 代入前は true。

    • コマンドの実行が完了すると、this.setupComplete は false になります。

    1

    • 上記の手順が完了したら、エンドポイント /setup/setupadministrator.action に再度アクセスすると成功します。

    1

    • 作成後、ログインして権限を確認してください。

    1

    ツールをダウンロード