Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-22515 — Confluence Server의 취약한 접근 제어 - CVE-2023-22515 | Kitploit
도구/GitHubGitHub/lucaspdiniz/cve-2023-22515
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHublucaspdiniz/cve-2023-22515

CVE-2023-22515

Confluence Server의 취약한 접근 제어 - CVE-2023-22515

저장소 보기
212년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Confluence 취약점 - CVE-2023-22515 📓

소개

Atlassian은 관리자 액세스를 통해 환경을 손상시킬 수 있는 잠재적 취약점에 대해 통보받았습니다. 2023년 10월 4일, Atlassian은 CVSS 점수 10.0을 받은 CVE-2023-22515에 대한 보안 권고를 발표했습니다. 이 취약점은 Confluence Server 및 Data Center 에디션의 8.0.0 버전에서 도입되었으며 <8.3.3, <8.4.3, <8.5.2 버전에 존재합니다.

공격자는 이 취약점을 악용하여 Confluence에 전체 관리자 권한을 가진 추가 계정을 생성할 수 있습니다. 공격자는 이 취약점을 악용하기 위해 사전 정보가 필요하지 않습니다. 이 취약점은 다른 알려지지 않은 공격 벡터를 가능하게 할 것으로 여겨지므로 가능한 한 빨리 패치해야 합니다.

공격 과정 설명 ⚠️

이 취약점을 통해 공격자는 Confluence 구성의 설정 단계로 돌아가 관리자 액세스 권한을 가진 새 사용자를 생성할 수 있습니다. 이것이 가능한 이유는 Confluence가 XWork 패키지에 의존하는 Apache Struts 프레임워크로 구축되었기 때문입니다. XWork를 사용하면 Java 클래스 형태로 Action을 정의할 수 있습니다. 각 Action은 URL을 통해 호출할 수 있으며, 해당 Java 클래스가 요청을 처리하고 Action이 요구하는 작업을 수행한 후 응답을 반환합니다.

이 문제는 주로 URL을 통해 액션 클래스의 속성을 호출할 수 있는 액션 클래스로 인해 발생합니다.

  • Getter/Setter 체이닝을 통한 초기 설정 재활성화

공격 과정은 ServerInfoAction 액션에서 이루어지며, 여기서 클래스의 getter/setter를 조작하고 설정 구성을 재설정할 수 있습니다.

ServerInfoAction 클래스의 코드를 분석하면 ConfluenceActionSupport 클래스를 상속한다는 것을 알 수 있습니다. 상속을 통해 해당 클래스의 모든 메서드도 상속받습니다. 그러한 메서드 중 하나는 BootstrapStatusProvider 객체를 반환하는 getter입니다:

root@kitploit:~
public class ConfluenceActionSupport extends ActionSupport implements LocaleProvider, WebInterface, MessageHolderAware {
  public BootstrapStatusProvider getBootstrapStatusProvider() {
    if (this.bootstrapStatusProvider == null)
      this.bootstrapStatusProvider = BootstrapStatusProviderImpl.getInstance(); 
    return this.bootstrapStatusProvider;
  }
}

우리가 주목하는 것은 BootstrapStatusProvider 클래스입니다. 이 클래스에는 ApplicationConfiguration 객체를 가져오는 데 사용할 수 있는 또 다른 getter 메서드가 있기 때문입니다:

root@kitploit:~
public class BootstrapStatusProviderImpl implements BootstrapStatusProvider, BootstrapManagerInternal {
  public ApplicationConfiguration getApplicationConfig() {
    return this.delegate.getApplicationConfig();
  }
}

이 객체에는 초기 설정이 완료되었는지 Confluence에 알려주는 속성을 포함한 애플리케이션 구성이 들어 있습니다. 이러한 속성은 ApplicationConfig 클래스의 setter를 사용하여 수정할 수 있습니다:

root@kitploit:~
public class ApplicationConfig implements ApplicationConfiguration {
  public synchronized void setSetupComplete(boolean setupComplete) {
    this.setupComplete = setupComplete;
  }  
}

setSetupComplete(false)를 호출할 수 있다면 설정 구성 과정을 재설정할 수 있으며, 아래와 같이 getter/setter 메서드를 사용하여 이를 수행할 수 있습니다.

root@kitploit:~
http://10.10.227.86:8090/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false

이 URL은 위에서 언급한 모든 메서드를 호출하여 설정을 재설정하는 대상 메서드에 도달하게 됩니다.

root@kitploit:~
getBootstrapStatusProvider().getApplicationConfig().setSetupComplete(false)

실습 ✍️

아래에는 취약한 버전의 Confluence를 실행 중인 서버 예시가 있습니다.

위에서 설명한 메서드 호출을 사용하여 설정 프로세스를 다시 시작해 보겠습니다.

root@kitploit:~
http://atlassian.poc:8090/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false

setupcomplete 매개변수를 false로 설정하면 성공 응답을 받게 됩니다. 이는 매개변수 변경 시도가 성공했음을 의미합니다.

  • 새 관리자 계정 생성 🔥

설정 프로세스를 재설정하려는 setup URL에 접근하여 새 계정을 생성해 보겠습니다.

root@kitploit:~
http://atlassian.poc:8090/setup/setupadministrator-start.action

  • 완료 !!! ✔️

설정 프로세스를 재설정하고 관리자 액세스 권한을 가진 새 사용자를 생성할 수 있었습니다.

패치 ✅

이 취약점은 8.3.3, 8.4.3 및 8.5.2 버전에서 수정되었습니다. 이후의 모든 최신 버전 브랜치도 안전해야 합니다.

자세한 내용은 Atlassian이 웹사이트에 공개한 이 취약점에 대한 정보를 참조하세요 (자세히 보기 - Atlassian).

도구 다운로드