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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2019-3396 — Confluence 비인가 템플릿 인젝션 | Kitploit
도구/GitHubGitHub/petrusviet/cve-2019-3396
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubpetrusviet/cve-2019-3396

cve-2019-3396

Confluence 비인가 템플릿 인젝션

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Confluence 비인증 템플릿 주입 (CVE-2019-3396)

I) 빌드

  • 이 버그는 다음 버전에서 발생합니다:
    • 1.x.x, 2.x.x, 3.x.x, 4.x.x 및 5.x.x 모든 버전
    • 6.0.x, 6.1.x, 6.2.x, 6.3.x, 6.4.x 및 6.5.x 모든 버전
    • 6.6.12 이전의 모든 6.6.x 버전
    • 6.7.x, 6.8.x, 6.9.x, 6.10.x 및 6.11.x 모든 버전
    • 6.12.3 이전의 모든 6.12.x 버전
    • 6.13.3 이전의 모든 6.13.x 버전
    • 6.14.2 이전의 모든 6.14.x 버전
  • 소스를 다운로드한 후 여러분이 해야 할 일은 다음과 같습니다:
    • confluence.home 값을 ./confluence/WEB-INF/classes/confluence-init.properties 파일의 confluence home 주소로 수정합니다
    • 프로그램이 원격 디버그(remote debug) 모드로 실행될 수 있도록 CATALINA_OPTS 값을 추가합니다

Windows의 경우, ./bin/setenv.bat 파일

set CATALINA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

Linux의 경우, ./bin/setenv.sh 파일

CATALINA_OPTS="-Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5005 ${CATALINA_OPTS}"  
  • IDE(Intellij)에서 Remote JVM Debug 디버그 구성(Debug Configuration)을 생성하고 host 및 port 값을 localhost:5005로 설정하며 Command line aguments for remote JVM에 다음을 입력합니다
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
  • Postgresql을 데이터베이스로 사용할 수 있습니다:
$ su - postgres
postgres@ubuntu:~$ psql -U postgres
postgres@ubuntu:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help.
 
postgres=# CREATE USER wiki WITH PASSWORD 'wiki';
CREATE ROLE
postgres=# CREATE DATABASE wiki OWNER wiki;
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE jira TO wiki;
GRANT
  • ./confluence/WEB-INF/atlassian-bundled-plugins/widgetconnector-x.x.x.jar, ./confluence/WEB-INF/lib/confluence-x.x.x.jar, ./confluence/WEB-INF/lib/velocity-x.x.x-atlassian-x.jar 파일을 lib에 추가해야 합니다. 이렇게 하면 디버그할 때 필요한 소스(source)를 확인할 수 있습니다.

  • ./bin/start-confluence.bat 파일을 실행하면 됩니다. 소스에서 설치하는 방법은 이 가이드를 참고할 수 있습니다.

II) 분석

  • 설명(Description)을 읽어보면 이 버그가 Widget Connector 기능에서 시작된다는 것을 알 수 있습니다. 그래서 이 기능이 무엇이고 어떻게 사용하는지 바로 구글링해봤습니다:

    2 페이지 편집 화면으로 진입

    3
    Other macros 선택

    4 Widget connector 선택

    image

  • 아무 값이나 골라 미리보기(preview)를 누른 뒤, burp로 넘어가 특별한 게 없는지 확인했습니다. image

  • 이 패킷에서 "pluginKey":"com.atlassian.confluence.extra.widgetconnector" 파라미터를 확인했습니다. 그래서 Widget Connector 기능이 com.atlassian.confluence.extra.widgetconnector 클래스에 정의되어 있을 것이라고 추측하고, 경로(path)에서 수상한 jar 파일이 있는지 검색해봤습니다.

image

  • 소스 코드를 읽고 디버그할 수 있도록 ./confluence/WEB-INF/atlassian-bundled-plugins/widgetconnector-x.x.x.jar 파일을 프로젝트의 lib에 추가해봤습니다.

    1
    lib에 jar 파일을 추가하는 방법

  • widgetconnector 패키지를 열어보니 WidgetMacro 클래스가 눈에 띄어서, Preview 기능을 사용할 때 이 클래스가 호출되는지 확인하기 위해 생성자(constructor)와 execute 함수에 중단점(breakpoint)을 설정했습니다 🕵️

    • image
    • execute 함수가 호출되었고, 이후 프로그램은 DefaultRenderManager.getEmbeddedHtml을 호출합니다
    • image
도구 다운로드