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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-67875 — CVE-2025-67875 - ChurchCRM의 Person Property Assignment를 통한 저장형 XSS로 관리자 세션 하이재킹 유발 | Kitploit
도구/GitHubGitHub/lukasz-rybak/cve-2025-67875
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHublukasz-rybak/cve-2025-67875

CVE-2025-67875

CVE-2025-67875 - ChurchCRM의 Person Property Assignment를 통한 저장형 XSS로 관리자 세션 하이재킹 유발

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-67875: ChurchCRM, Person Property Assignment을 통한 저장형 XSS로 관리자 세션 하이재킹

개요

필드세부 정보
CVE IDCVE-2025-67875
심각도높음
권고권고 보기
발견자Lukasz Rybak

영향을 받는 제품

  • ChurchCRM/CRM

세부 내용

요약

ChurchCRM 버전 6.3.0 및 이전 버전에 심각한 권한 상승 취약점이 존재합니다. 특정 중간 수준 권한("Edit Records" 및 "Manage Properties and Classifications")을 가진 인증된 사용자가 관리자의 프로필에 지속적인 XSS(저장형 Cross-Site Scripting) 페이로드를 주입할 수 있습니다. 페이로드는 관리자가 자신의 프로필 페이지를 볼 때 실행되어, 공격자가 관리자 세션을 가로채고 관리 작업을 수행하며 완전한 계정 탈취를 달성할 수 있습니다.

이 취약점은 두 가지 별개의 결함의 조합입니다: 모든 사용자가 다른 사용자의 프로필을 볼 수 있게 하는 IDOR(안전하지 않은 직접 객체 참조)과, 일반 편집 권한이 있는 사용자가 다른 사용자의 레코드 속성을 수정할 수 있게 하는 손상된 접근 제어 취약점입니다.

세부 사항

공격 체인은 다음과 같습니다:

  1. PersonView.php의 IDOR: PersonView.php 시작 부분에 인증 검사가 없습니다. 인증된 사용자는 관리자 ID(예: PersonView.php?PersonID=1)만 알면 다른 사용자의 프로필 페이지를 볼 수 있습니다.

  2. PropertyAssign.php의 손상된 접근 제어: 다른 사용자의 PersonView.php 페이지에서 접근할 수 있는 "Assign a New Property" 기능은 PropertyAssign.php로 사용자를 리디렉션합니다. 이 스크립트는 사용자에게 일반 isEditRecordsEnabled() 권한이 있는지 올바르게 확인하지만, URL에 전달된 특정 PersonID를 편집할 수 있는 권한이 있는지 객체 수준 인증 검사를 수행하지 않습니다. 따라서 "Edit Records" 권한이 있는 사용자가 관리자를 포함한 시스템의 모든 사람의 속성을 수정할 수 있습니다.

  3. 저장형 XSS 벡터: 공격자는 이 두 가지 결함을 이용하여 관리자의 프로필 페이지로 이동하고 "Assign a New Property" 양식을 사용하여 악성 XSS 페이로드를 관리자의 레코드에 저장할 수 있습니다. 텍스트 기반 속성의 Value 필드는 입력 시 적절히 이스케이프 처리되지 않고(strip_tags만 적용되어 이벤트 핸들러를 제거하지 않음) 출력 시 인코딩되지 않아 저장형 XSS가 발생합니다.

    • 입력 처리 (src/PropertyAssign.php): strip_tags()만 적용한 후 속성 값을 저장하므로 onerror와 같은 이벤트 핸들러 속성이 허용됩니다.
    • 취약한 출력 지점 (src/PersonView.php): 저장된 속성 값을 htmlspecialchars() 없이 HTML에 직접 렌더링하여 페이로드가 실행됩니다.
      root@kitploit:~
      // src/PersonView.php, line ~722
      <td><?= $r2p_Value ?></td> // 취약: 원시 출력
      

PoC

이 개념 증명은 특정 중간 수준 권한을 가진 사용자가 주요 관리자의 프로필에 저장형 XSS 페이로드를 주입할 수 있는 방법을 보여줍니다.

전제 조건:

  • 공격자는 다음 두 가지 특정 권한이 활성화된 계정을 보유하고 있습니다:
    1. Edit Records
    2. Manage Properties and Classifications

시나리오:

  1. 공격자로 로그인: 위에 나열된 권한이 있는 사용자로 로그인합니다.
image
  1. 관리자 대상 지정: 일반적으로 PersonID=1인 관리자의 프로필 페이지로 직접 이동합니다.
    root@kitploit:~
    http://localhost:8101/PersonView.php?PersonID=1
    
    (PersonView.php의 IDOR로 인해 접근이 허용됩니다).
관리자 대상 지정
  1. 페이로드 주입:
    • 관리자의 프로필 페이지에서 Assigned Properties 탭으로 스크롤합니다.
    • "Assign a New Property" 양식에서 텍스트 기반 속성(예: "Test")을 선택합니다. (양식은 "Edit Records" 권한으로 인해 표시됩니다).
    • 나타난 Value 텍스트 영역에 다음 XSS 페이로드를 입력합니다:
      root@kitploit:~
    • "Assign" 버튼을 클릭합니다. 페이로드가 관리자의 레코드에 저장됩니다. (PropertyAssign.php의 손상된 접근 제어로 인해 할당이 가능합니다).
페이로드 주입
image
  1. 공격 트리거:
    • 공격자는 관리자가 로그인하여 자신의 프로필을 볼 때까지 기다립니다.
    • 관리자가 자신의 프로필 페이지(PersonView.php?PersonID=1)로 이동하면 페이로드가 즉시 실행되고 경고 상자가 나타납니다. 공격자는 더 정교한 페이로드를 사용하여 관리자의 세션 쿠키를 탈취할 수도 있습니다.
공격 트리거
image

영향

이는 심각한 권한 상승 취약점입니다. 특정 권한이 상승된(관리자는 아닌) 사용자가 관리자 계정에 대한 완전한 제어권을 얻을 수 있습니다. 관리자의 세션을 가로채어 공격자는 관리자가 사용할 수 있는 모든 작업(새 관리자 계정 생성, 데이터 삭제 등)을 수행할 수 있으며, 다른 취약점과 연쇄적으로 결합하여 서버 전체를 장악할 수도 있습니다.

기여

보고자: Łukasz Rybak

참고 자료

  • https://github.com/ChurchCRM/CRM/security/advisories/GHSA-fcw7-mmfh-7vjm

면책 조항

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

도구 다운로드