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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-10818 — WPForms Pro <= 1.10.1.1 - Chunked Upload Init/Finalize 순서를 통한 인증되지 않은 임의 파일 쓰기 | Kitploit
도구/GitHubGitHub/nxploited/cve-2026-10818
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration Testing
GitHubnxploited/cve-2026-10818

CVE-2026-10818

WPForms Pro <= 1.10.1.1 - Chunked Upload Init/Finalize 순서를 통한 인증되지 않은 임의 파일 쓰기

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-10818

WPForms Pro <= 1.10.1.1 - 청크 업로드 초기화/마무리 순서를 통한 인증 없는 임의 파일 쓰기

CVE CVSS CWE Python

CVE-2026-10818

WPForms Pro ≤ 1.10.1.1 — 청크 업로드를 통한 인증 없는 임의 파일 쓰기

개념 증명 익스플로잇
청크 업로드 초기화/마무리 순서 → 예측 가능한 경로 노출 → 원격 코드 실행


취약점 개요

필드세부 정보
CVE IDCVE-2026-10818
영향을 받는 플러그인WPForms Pro (WordPress)
영향을 받는 버전1.10.1.1 이하 모든 버전
유형인증 없는 임의 파일 쓰기
CWECWE-434: 위험한 유형의 파일 무제한 업로드
CVSS 3.18.1 HIGH — CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
인증필요 없음

WordPress용 WPForms Pro 플러그인은 ajax_chunk_upload_finalize 함수를 통해 1.10.1.1 이하의 모든 버전에서 임의 파일 업로드 취약점에 노출됩니다. 이는 파일 형식 검증이 청크 메타데이터와 파일 내용이 이미 디스크에 기록된 이후에 수행되고, 검증 실패 시 조립된 파일이 삭제되지 않기 때문입니다. 이로 인해 인증되지 않은 공격자가 실행 가능한 파일을 업로드할 수 있으며, 원격 코드 실행이 가능해집니다.

근본 원인

root@kitploit:~
wpforms_upload_chunk_init     →  Metadata created BEFORE extension validation
wpforms_upload_chunk          →  Chunk bytes written regardless of init result
wpforms_file_chunks_uploaded  →  File assembled BEFORE type validation
                              →  File persists on disk even when validation fails

이 취약점 체인은 청크 업로드 수명 주기의 치명적인 순서 결함을 악용합니다:

  1. Init은 파일 확장자가 허용되는지 확인하기 전에 디스크에 메타데이터를 생성합니다
  2. Chunk는 메타데이터를 로드하고 원시 바이트를 예측 가능한 경로(SHA1(UUID)-0.chunk)에 기록합니다
  3. Finalize는 MIME 유형을 검증하기 전에 최종 파일을 조립하며, 실패 시 정리하지 않습니다
  4. 세 AJAX 엔드포인트 모두 논스(nonce) 검증이 적용되지 않습니다
  5. 세 경로 모두 인증되지 않은 방문자(wp_ajax_nopriv_*)를 위해 등록됩니다

기능

  • 다중 대상 스캔 — 대상 목록을 입력받아 동시에 처리
  • 자동 양식 탐지 — 페이지, 사이트맵 및 100개 이상의 일반 경로를 크롤링하여 WPForms 업로드 필드를 찾습니다
  • 버전 탐지 — readme.txt 및 HTML 소스를 읽어 취약한 WPForms 버전 식별
  • AJAX 라우트 검증 — 진행 전에 wpforms_upload_chunk_init가 외부에서 도달 가능한지 확인
  • 이중 업로드 전략:
    • 완전 업로드 (init → chunk → finalize) — 안전한 확장자와 실행 가능한 확장자 모두 사용
    • 청크 전용 업로드 (init → chunk, finalize 건너뜀) — SHA1(UUID)를 통한 결정적 파일 경로
  • 예측 가능한 경로 계산 — SHA1(클라이언트 제어 UUID)를 계산하여 추측 없이 정확한 청크 URL 도출
  • 디렉터리 목록 비교 — exec 업로드 전후 /wpforms/tmp/ 스냅샷을 찍어 새로 작성된 파일 식별
  • 해시 누출 추출 — 모든 응답 본문과 헤더에서 <32hex>.<ext> 파일명 패턴 스캔
  • 실행 검증 — 응답 본문의 고유 서명을 확인하여 실제 PHP 실행을 확인하고 정적 파일 서빙 및 소스 코드 노출을 필터링
  • PATH_INFO 프로빙 — 서버 핸들러 우회(.chunk/x.php, /.php)를 시도하여 비-PHP 확장자에서 PHP 실행 유도
  • 폴리글롯 페이로드 — IEND 청크 뒤에 PHP가 내장된 유효한 PNG 이미지 생성
  • 전문적인 출력 — 대상별 상태 추적이 포함된 실시간 색상 터미널 표시

요구 사항

root@kitploit:~
Python >= 3.8
root@kitploit:~
pip install requests urllib3 beautifulsoup4

beautifulsoup4는 선택 사항이지만 더 안정적인 양식 필드 추출을 위해 권장됩니다.


사용법

root@kitploit:~
python CVE-2026-10818.py

다음 항목을 입력하라는 메시지가 표시됩니다:

프롬프트설명기본값
대상 파일한 줄에 하나의 대상이 포함된 텍스트 파일 경로list.txt
스레드동시 작업자 수 (1–20)5

대상 파일 형식

root@kitploit:~
https://example.com
http://target.org
subdomain.example.net
192.168.1.100
https://example.com/wordpress

한 줄에 URL 하나. http://, https://, 베어 도메인, IP 및 하위 디렉터리 설치를 지원합니다.


출력

터미널

root@kitploit:~
  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  ┃                                                                ┃
  ┃      ██▄    ██  ██  ██                                         ┃
  ┃      ████   ██   ████                                          ┃
  ┃      ██ ██  ██    ██                                           ┃
  ┃      ██  ████   ████                                           ┃
  ┃      ██   ███  ██  ██                                          ┃
  ┃                                                                ┃
  ┃      Nxploited  ━  Khaled Alenazi  ━  T.m @Kxploit             ┃
  ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
  ┃      CVE-2026-10818     WPForms Pro ≤ 1.10.1.1                 ┃
  ┃      Chunked Upload → Predictable Path → RCE                  ┃
  ┃      Results ━▸ Nx_hit/                                        ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

스캔 중 각 대상은 라벨이 지정된 단계를 거칩니다:

root@kitploit:~
  02:14:52  ◆  target.com                        VER  WPForms 1.9.3.1 vulnerable
  02:14:53  ◆  target.com                       FORM  1 upload form(s) on /contact
  02:14:53  ◆  target.com                     UPLOAD  6 safe + 5 exec payloads
  02:14:55  ◆  target.com                        FIN  poly_png → a8f3...1b22.png URL returned
  02:14:57  ◆  target.com                        DIR  listing enabled, 4 file(s) before exec upload
  02:14:59  ◐  target.com                       EXEC  shell_php → finalized on disk (hash unknown)
  02:15:01  ◆  target.com                        DIR  1 NEW exec file(s) after upload!

  ●  target.com  SHELL  dir-new:7c4f...e8a1.php  https://target.com/wp-content/uploads/wpforms/tmp/7c4f...e8a1.php

결과 파일

모든 결과는 Nx_hit/에 저장됩니다:

파일내용
Nx_shell.txt확인된 RCE — URL, 라벨 및 응답 본문 미리보기
Nx_vuln.txt실행 검증 없이 확인된 임의 파일 쓰기

요약

root@kitploit:~
  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  ┃  COMPLETE   150 targets processed                              ┃
  ┃                                                                ┃
  ┃  ● 3 shell     ◐ 12 vuln     ○ 85 skip     ✗ 50 miss          ┃
  ┃                                                                ┃
  ┃  Results ━▸ Nx_hit/                                            ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
기호의미
● shell원격 대상에서 PHP 실행 확인

스캔 파이프라인

root@kitploit:~
Target
  │
  ├─ Reachability (HTTPS → HTTP fallback)
  ├─ WPForms Version Detection
  ├─ Form Discovery (100+ page paths + sitemap crawl)
  ├─ AJAX Route Validation
  │
  ├─ Phase 1: Safe Uploads (png/jpg/pdf + finalize → URL)
  │     └─ Shell verification on returned URLs
  │
  ├─ Phase 2: Directory Snapshot (BEFORE)
  │
  ├─ Phase 3: Exec Uploads (php/phtml/php5/phar/shtml + finalize)
  │     ├─ Leaked filename extraction from response
  │     └─ Hash pattern extraction from body + headers
  │
  ├─ Phase 4: Directory Snapshot (AFTER) → Diff → New exec files
  │     └─ Shell verification on each new file
  │
  ├─ Phase 5: Hash Leak Verification
  │     └─ Build URLs from leaked hashes → Shell check
  │
  ├─ Phase 6: Chunk-Only Uploads (no finalize → predictable SHA1 path)
  │     └─ Direct access + PATH_INFO bypass probing
  │
  └─ Result Classification (shell / vuln / skip / miss)

면책 조항

이 도구는 승인된 보안 테스트 및 교육 연구 목적으로만 제공됩니다. 소유한 시스템 또는 명시적인 서면 허가를 받은 시스템에서만 사용하십시오.

컴퓨터 시스템에 대한 무단 액세스는 불법입니다. 저자는 이 소프트웨어 사용으로 인한 오용, 손해 또는 법적 결과에 대해 책임을 지지 않습니다.

이 도구를 사용함으로써 귀하는 자신의 행동에 전적으로 책임이 있으며 모든 관련 법률 및 규정을 준수하는 데 동의합니다.


작성자: Nxploited
Khaled Alenazi
T.m @Kxploit

도구 다운로드
◐ vuln파일이 디스크에 기록됨, 실행은 확인되지 않음
○ skip대상에 접근 불가, 패치됨 또는 업로드 양식 없음
✗ miss업로드 시도 실패