Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-22515 — CVE-2023-22515에 대한 단계별 익스플로잇 워크스루: Atlassian Confluence Server 및 Data Center의 심각한 손상된 접근 제어 취약점으로, 원격 관리자 계정 생성을 가능하게 합니다. | Kitploit
도구/GitHubGitHub/tranphuc2005/cve-2023-22515
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
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-04.

  • 심각도: Critical (CVSS ~ 10.0).

  • 취약점 유형: Broken Access Control / Improper Authorization → 공격자가 원격으로 관리자 계정을 생성할 수 있습니다.

  • 취약점은 Confluence 설정 메커니즘에 있습니다.

  • 영향: Confluence Data Center 및 Server 8.0.0 ~ 8.5.1.

취약점 탐색 구현

  • 먼저 Confluence를 설치할 때 서버가 작동하도록 구성하는 단계가 있습니다(예: DATABASE 연결, 사용자 생성 등). 이 작업은 웹 브라우저와 /setup/ URL 경로를 통해 수행됩니다. 구성의 마지막 단계는 /setup/setupadministrator.action입니다.
  • 구성이 완료되면 해당 설정은 더 이상 호출되지 않습니다. 호출을 시도하면 오류 메시지가 표시됩니다.

1

  • 이는 struts.xml의 SetupCheckInterceptor라는 인터셉터 중 하나에서 비롯됩니다.

    • struts.xml은 Struts의 중앙 구성 파일입니다.

    • 이 파일은 Confluence가 URL → Action 클래스 → View 템플릿을 매핑하는 방법을 정의합니다.

    • 또한 인터셉터(액션 실행 전/후 요청을 처리하는 클래스)를 선언합니다.

1

SetupCheckInterceptor에서 BootstrapUtils.getBootstrapManager().isSetupComplete()를 호출합니다.

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 컨테이너가 완전히 초기화되었는지 확인합니다.

  • 두 조건 모두 참인 경우:
    → 시스템이 완전히 설정된 상태임을 의미합니다 → 인터셉터가 즉시 "alreadysetup"을 반환합니다.
    → 액션(일반적으로 SetupDatabaseAction, SetupLicenseAction 등의 설정 액션)이 실행되지 않도록 차단합니다.

  • 설정이 완료되지 않은 경우:
    → actionInvocation.invoke()를 호출하여 사용자가 요청한 액션을 계속 실행합니다.

getBootstrapManager() → 일반적으로 DefaultAtlassianBootstrapManager를 반환합니다. 이는 설정 과정에서 모든 핵심 구성 정보를 관리합니다.

  • DefaultAtlassianBootstrapManager.isSetupComplete 메서드에서 애플리케이션 구성의 isSetupComplete 메서드를 호출하여 설정 완료 여부를 확인하는 것을 볼 수 있습니다.

1

=> isSetupComplete를 False로 만들면 SetupCheckInterceptor가 "alreadysetup"을 반환하지 않으므로 /setup/setupadministrator.action에 접근할 수 있습니다.

아래에 ServerInfoAction이 있습니다.

  • ServerInfoAction = Confluence의 공용 Action → 로그인 없이, CSRF 토큰 없이 모든 사용자가 호출할 수 있습니다. 실행되면 "success"를 반환하며, 서버 정보를 표시하는 템플릿으로 매핑됩니다.

1

  • 이 클래스는 ConfluenceActionSupport를 상속받습니다.
  • ConfluenceActionSupport에서 getBootstrapStatusProvider가 우리가 찾고 있는 BootstrapStatusProviderImpl 인스턴스를 반환합니다.

1

  • BootstrapStatusProviderImpl에는 애플리케이션 구성을 반환하는 getApplicationConfig 메서드가 있습니다.

1

  • 마지막으로 ApplicationConfig 내부에 들어가면 setSetupComplete를 확인하는 구현이 있습니다.

1

  • 위 내용을 종합하면 setSetupComplete를 false로 설정하는 일련의 메서드 호출 체인을 유추할 수 있습니다.
getBootstrapStatusProvider(). getApplicationConfig (). setSetupComplete ( false );
  • XWorks2는 이러한 getter/setter 체인 호출을 허용합니다. XWorks2에서 요구하는 표기법을 사용하여 위 메서드 호출 체인을 구현하는 HTTP 파라미터를 구성할 수 있습니다.
bootstrapStatusProvider.applicationConfig.setupComplete=false
  • Confluence의 /server-info.action URL을 이용합니다. 이 URL은 ServerInfoAction이 처리하며, 로그인이 필요 없는 공용 엔드포인트입니다.
/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false

1

디버그를 확인해 보겠습니다.

  • setupComplete (메서드에 전달된 파라미터)
    → false
    즉, 메서드가 false 파라미터로 호출되고 있습니다.

  • this.setupComplete (ApplicationConfig 객체의 인스턴스 변수)
    → true (할당 전).

  • 명령 실행 후 this.setupComplete는 false가 됩니다.

1

  • 위 단계를 완료한 후 /setup/setupadministrator.action 엔드포인트에 다시 접속해 보면 성공적으로 접근됩니다.

1

  • 생성 후 로그인하여 권한을 확인합니다.

1

도구 다운로드