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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-87902 — WordPress 페이지 템플릿 경로 순회로 인해 로컬 PHP 파일 포함 및 PEAR 기반 RCE로 이어지는 CVE-2026-87902를 재현하는 Docker 기반 로컬 랩으로, PoC 스크립트를 포함합니다. | Kitploit
도구/GitHubGitHub/xiaxiu555/cve-2026-87902
Container SecurityVulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityLearning & EducationPayload DevelopmentLabs & Practice
GitHubxiaxiu555/cve-2026-87902

cve-2026-87902

WordPress 페이지 템플릿 경로 순회로 인해 로컬 PHP 파일 포함 및 PEAR 기반 RCE로 이어지는 CVE-2026-87902를 재현하는 Docker 기반 로컬 랩으로, PoC 스크립트를 포함합니다.

저장소 보기
129일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-87902 WordPress 로컬 랩

CVE-2026-87902(WordPress 페이지 템플릿 파싱 경로 순회 → 로컬 PHP 파일 포함 → pearcmd 파일 쓰기 RCE)를 재현하는 로컬 Docker 랩입니다.

⚠️ 승인된 환경에서의 보안 학습 및 연구 전용입니다. 로컬 Docker에서만 실행해야 하며, 승인되지 않은 어떤 대상에도 사용해서는 안 됩니다. 취약점은 2026-09-22에 공식적으로 수정되었으며, 모든 지원 브랜치에 패치가 배포되었습니다.

취약점 정보

  • CVE: CVE-2026-87902(GHSA-7hp8-65ch-5whp), CWE-98 PHP 파일 포함, CVSS 4.0 9.2 Critical
  • 영향: WordPress 4.7.0 – 7.1.1 (수정: 7.1.2 / 7.0.6, 나머지 브랜치는 4.7.37로 백포트)
  • 원리: get_page_template()이 사용자 제어 가능한 pagename 파라미터에 2차 urldecode()를 수행한 후 템플릿 후보 이름에 이어 붙이며, locate_template()은 file_exists()로 파일을 찾고 로드 전에 realpath/접미사/가독성 검사만 수행하여 경로가 여전히 테마 디렉터리 내에 있는지 검증하지 않음 (canonicalization은 있으나 containment는 없음)
  • 원본 PoC 및 write-up (Robert Ressl):
    • https://github.com/ressl/cve-2026-87902-poc
    • https://ressl.ch/blog/cve-2026-87902-wordpress/
    • https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-7hp8-65ch-5whp

랩에 사전 구성된 네 가지 악용 조건

#조건이 랩에서의 충족 방식
1게시되었고 사용자 정의 템플릿이 지정되지 않은 페이지setup.sh가 예제 페이지를 자동 생성 및 정리
2활성 테마 최상위에 page-* 디렉터리 존재theme/mytheme/page-templates/ (활성 테마에 이 디렉터리 포함)
3읽을 수 있는 /usr/local/lib/php/pearcmd.php공식 php 이미지에 PEAR 내장
4register_argc_argv=On + 쓰기 가능한 저장 위치공식 이미지에는 php.ini가 없어 컴파일 기본값 On; /tmp 쓰기 가능

빠른 시작

docker compose up -d      # 최초 실행 시 이미지 자동 다운로드 (약 1GB)
sh setup.sh               # 설치 + /flag 심기 + 네 가지 조건 검증
python cve-2026-87902.py --url http://127.0.0.1:8091

예상 출력:

[*] page id  : 4 (about, default template, via /index.php?rest_route=...)
[*] depth 7  : stage 1 HTTP 200, stage 2 HTTP 200
[+] marker   : 'CVE-2026-87902-POC-OK' found 12 time(s) in the stage-2 response
[+] EXPLOIT SUCCESSFUL - PHP executed with the web-server account's privileges

(12회 = PEAR 설정 파일에 12개의 설정 항목이 있으며, 각 항목에 payload가 하나씩 삽입됨)

검증 및 설명

stage 1에서 PEAR가 작성한 파일 확인 (#PEAR_Config 0.9로 시작하는 serialize 텍스트이며, payload가 일반 문자로 12개 설정 항목에 삽입되어 있음):

docker compose exec wordpress cat /tmp/wp-pear-rce-flag.php
  • stage 1: 경로 순회를 이용해 pearcmd.php를 포함; register_argc_argv=On으로 인해 query string이 +를 기준으로 $argv로 분할되어 pearcmd가 자신이 터미널에서 호출된 것으로 인식; config-create <root> <file>이 root(PHP 코드가 내장된)를 대상 파일에 그대로 기록
  • stage 2: 동일한 순회 체인으로 방금 기록된 파일을 include하고, <?=...?>가 실행되어 /flag를 읽어 출력

백엔드 및 정리

  • WordPress 관리자 페이지: http://127.0.0.1:8091/wp-admin (admin / admin123, 로컬 실습 환경 전용)
  • flag 내용: CVE-2026-87902-POC-OK (컨테이너 /flag에 위치)
  • Windows 사용자는 Git Bash로 setup.sh를 실행하십시오

완전 정리 (컨테이너 + 데이터 볼륨 + 이미지):

docker compose down -v --rmi all

파일 설명

docker-compose.yml     WordPress 7.0.2-php8.3-apache + MySQL 8.4 + wp-cli
theme/mytheme/         실험 테마 (page-templates/ 디렉터리 포함, 조건②)
cve-2026-87902.py      PoC (ressl/cve-2026-87902-poc에서 가져옴, 저작권은 원저자에게 있음)
setup.sh               원클릭 설치 + 네 가지 조건 자체 점검

감사의 말 및 고지

  • 취약점 발견 및 공개: Robert Ressl (ressl.ch), WordPress 공식 보안 절차(HackerOne)를 통해 조정 공개
  • 이 저장소는 공식 이미지, 공식 관례 디렉터리 및 공개 PoC의 조합만 포함하며, 교육용 재현을 목적으로 함
  • 이 랩 사용으로 발생하는 모든 결과는 사용자 본인이 부담함
도구 다운로드