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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
wp2shell-poc — 분석 및 종단 간 구현: 패치된 WordPress RCE 취약점 - CVE-2026-60137 및 CVE-2026-63030 | Kitploit
도구/GitHubGitHub/colere-sys/wp2shell-poc
Exploit FrameworksVulnerability AnalysisWeb Application ExploitationCTFPenetration TestingLearning & EducationRed TeamingPayload Development
GitHubcolere-sys/wp2shell-poc

wp2shell-poc

분석 및 종단 간 구현: 패치된 WordPress RCE 취약점 - CVE-2026-60137 및 CVE-2026-63030

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

plot

이게 어떻게 동작하는가

plot

이 PoC가 공개된 wp2shell 익스플로잇과 다른 점

모든 PoC는 동일한 두 가지 버그—REST 배치 라우트 혼동(CVE-2026-63030)과 author__not_in SQL 인젝션(CVE-2026-60137)—을 동일한 이중 중첩 배치 형태로 무기화합니다. 이들 간의 차이는 선택된 RCE 경로, 환경 전제 조건, 안전 기본값에 있습니다. 이 문서는 이 저장소의 구현이 해당 지형에서 어디에 위치하는지 구체적으로 설명합니다.

요약

  1. 지속형 객체 캐시 뒤에서도 동작합니다. 공개된 UNION 기반 PoC는 채워진 베이스 인젝션 형태를 사용합니다. 이 계열이 공유하는 전체 체인 구현은 그곳에서 거짓 음성을 나타내며, 단일 파일 통합자는 "지속형 객체 캐시 없음"을 명시적 전제 조건으로 나열합니다. 이 저장소의 제거된 베이스 형태는 UNION 채널—따라서 전체 사전 인증 RCE 브리지—을 정확히 그러한 호스트(일반적인 관리형 WordPress 설정)에서 살아있게 유지합니다. §1 참조.
  2. 기본적으로 운영 환경에 대해 안전하게 실행됩니다. check는 명시적으로 요청하지 않는 한 SQL 페이로드를 보내지 않습니다. 모든 트래픽은 귀속 태그를 가질 수 있습니다. shell 명령이 대상에 기록하는 모든 것은 이후 자동으로 제거됩니다. §3 참조.

비교 표

기능이 저장소Icex0/wp2shell-pocsergiointel/wp2shell-poc0xsha/wp2shellOUTFILE 변형 [4]
사전 인증 블라인드/타이밍 SQLi 읽기예예예 (타이밍)예예
인밴드 UNION 읽기 (1 요청/값)예예- [1]- [1]-
오류 기반 읽기 (EXTRACTVALUE)예예---
UNION 채널이 지속형 객체 캐시에서 생존예 (제거된 베이스)아니오 - 프로브 거짓 음성 [2]문서화되지 않음아니오 - 문서화된 전제 조건 [3]해당 없음 [5]
크랙 없는 사전 인증 RCE예 (SQLi-to-admin 브리지)예 (동일 브리지)예 (브리지 원본)예 (동일 브리지)예, INTO OUTFILE을 통해 [5]
RCE를 위한 추가 전제 조건기본 설치 외에 없음없음 (객체 캐시 없는 호스트)없음 (동일)없음 (동일)MySQL FILE 권한 + mysqld와 공유되는 웹 쓰기 가능 경로
비파괴적 점검/패치 검증예 (마커 삼중항; 기본적으로 페이로드 없음)예아니오예 (block_cannot_read)예 (마커 배치)
귀속/User-Agent 태깅예, 모든 명령에 대해아니오아니오전송 플래그아니오
자동 정리 (웹셸 + 생성된 관리자)예예문서화되지 않음토큰 게이트 웹셸만드로퍼 제거됨 [5]
블루팀 탐지 가이드예, 운영 실행 기준아니오아니오대신 실험실 매트릭스완화 노트
종속성stdlib 전용stdlib 전용단일 파일stdlib 전용, 단일 파일Python ≥3.10 패키지

[1] 읽기 채널로서 타이밍/블라인드 전용; UNION 가짜-포스트 프리미티브는 브리지 내부에 존재하지만 추출 오라클로 노출되지 않습니다. [2] 단순 가용성 프로브(0) UNION SELECT …)는 객체 캐시 하이드레이션 중에 조용히 드롭되고, available()이 false를 반환하며, 전체 사전 인증 브리지가 중단됩니다—§1 참조. [3] 프로젝트 자체 README는 전제 조건 아래 "지속형 객체 캐시 없음(Redis/Memcached)"을 나열합니다. [4] Sploitus에 미러링된 공개 변형(아래 링크): 블라인드 읽기에 INTO OUTFILE 드로퍼를 RCE 단계로 추가하고, per_page=-1 카테고리 캐리어를 사용합니다. [5] OUTFILE RCE 경로는 가짜-포스트 렌더링에 의존하지 않으므로 객체 캐시가 이를 차단하지 않습니다—대신 MySQL FILE 권한과 공유 쓰기 가능 디렉터리가 필요합니다. 관리형 호스팅은 거의 항상 WordPress DB 사용자에게 FILE을 부여하지 않으며, secure_file_priv가 일반적으로 설정됩니다.

1. 객체 캐시 문제 (진정한 차별점)

UNION 가짜-포스트 프리미티브는 WP_Query가 행을 반환하는 방식에 따라 달라집니다:

  • 전체 행 모드 - SQL이 완전한 wp_posts 행을 반환합니다. UNION으로 삽입된 행이 직접 WP_Post가 됩니다. 위조가 렌더링됩니다.
  • 분할 (ID 전용) 모드 - SQL이 ID만 반환하고, 각 ID는 이후 (지속형) 객체 캐시/데이터베이스를 통해 하이드레이션됩니다. 위조된 행의 ID가 존재하지 않으므로 하이드레이션이 조용히 드롭합니다. 오류 없음, 위조 포스트 없음.

지속형 객체 캐시가 있는 호스트에서는 채워진 베이스 결과 집합이 WP_Query를 분할 모드로 밀어넣습니다. 공개 PoC에서 사용하는 표준 프로브:

root@kitploit:~
0) UNION SELECT <forged row> -- -

는 베이스 집합을 채워진 상태로 둡니다(post_author NOT IN (0)이 모든 행과 일치). 따라서 객체 캐시 뒤에서는 위조된 행이 사라집니다: 가용성 프로브가 거짓 음성을 내고, available()이 false를 반환하며, 전체 사전 인증 브리지가 실제로 완전히 익스플로잇 가능한 호스트에서 "죽은" 것으로 보고됩니다. 공개 통합자는 동일한 경계를 "지속형 객체 캐시 없음"을 하드 전제 조건으로 나열하여 문서화합니다.

이 저장소는 대신 베이스 집합을 비웁니다:

root@kitploit:~
1) AND 1=0 UNION ALL SELECT <forged row> -- -

베이스 행이 0개인 경우 위조된 행이 유일한 행입니다. 쿼리는 전체 행 모드를 유지합니다. 하이드레이션 조회가 실행되지 않습니다. 하나의 주입된 키워드(AND 1=0)가 객체 캐시 호스트에서 "UNION 채널 죽음"과 "전체 사전 인증 RCE" 사이의 전체 차이입니다—이들은 관리형 WordPress 운영 환경의 대다수입니다. 진단, 프로브 매트릭스(per_page × 인젝션 형태).

범위 참고: 블라인드/타이밍 읽기 채널은 객체 캐시에 민감하지 않습니다(SQL에서 행을 세는 것은 가짜-포스트 하이드레이션을 포함하지 않음). 따라서 모든 PoC의 블라인드 읽기는 어디서나 동작합니다. 다른 PoC에서 객체 캐시가 죽이는 것은 구체적으로 UNION에 의존하는 부분, 즉 인밴드 추출과 SQLi-to-admin 브리지입니다.

사례 연구에 문서화된 두 번째 관련 교훈: 두 채널이 모두 동작할 때, 인밴드 UNION 읽기를 권위 있는 것으로 취급하십시오—운영 타이밍 오라클은 지터 아래에서 비트 플립을 생성했으며, 인밴드 읽기는 해당 값을 명확히 결정했습니다.

2. RCE 경로 선택

공개 PoC 전체에 걸쳐 세 가지 사전 인증 RCE 경로가 존재합니다:

경로사용자추가 전제 조건
SQLi-to-admin 브리지 (oEmbed/changeset/nav 행 위조 → POST /wp/v2/users → 로그인 → 플러그인 업로드)이 저장소, sergiointel (원본), Icex0, 0xsha기본 설치 외에 없음
INTO OUTFILE 드로퍼 (SQLi를 통해 PHP 파일 작성, 가져와서 셸 획득)OUTFILE 변형 [4]MySQL FILE 권한, 이를 허용하는 secure_file_priv, mysqld가 쓰기 가능하고 웹 서버가 제공하는 디렉터리
해시 복구 → 크랙 → 로그인 (user_pass 덤프, 오프라인 크랙, 이후 플러그인 업로드)모든 (대체 수단)bcrypt 해시가 실제로 크랙되어야 함 ($wp$2y$, hashcat -m 35500) - 느림, 자주 실패

이 저장소는 브리지를 구현합니다: WordPress가 이미 가지고 있는 데이터베이스 권한 이상을 필요로 하지 않으며, DB와 웹 계층이 아무것도 공유하지 않을 때 동작하며, FILE 권한 경로가 의존하는 파일을 남기지 않습니다. 트레이드오프는 복잡성입니다—브리지는 7행의 오염된 포스트 그래프이며, 이는 정확히 §1의 객체 캐시 거짓 음성이 경로를 숨기는 데 사용된 부분입니다.

3. 허가된 사용을 위한 안전 기본값

실험실뿐만 아니라 허가 하에 운영 시스템에 대해 실행되도록 설계되었습니다:

  • check는 기본적으로 비파괴적 - 수동 핑거프린트에 무해한 마커 배치; --confirm-sqli가 주어지지 않으면 SQL 페이로드가 전송되지 않습니다. 패치 후, 사라지는 마커 삼중항은 수정 검증으로도 사용됩니다.
  • 귀속 태깅 - 모든 명령에 --user-agent가 있어 모든 익스플로잇 트래픽이 로그에서 식별 가능합니다(공개 도구가 기본값으로 설정하지 않는 참여 규칙).
  • 자동 정리 - 웹셸은 무작위화된 경로 아래 토큰 잠금되어 자체 제거됩니다; 브리지로 생성된 관리자는 이후 삭제되고 그 내용은 빌려온 관리자 계정에 재할당됩니다. 정리 실패는 조용히 무시되지 않고 크게 보고됩니다.
  • 요청 계정 - 모든 명령이 보낸 요청 수를 출력합니다.

4. 이 저장소가 주장하지 않는 것

  • 새로운 취약점이 아닙니다. 두 버그 모두 공개된 CVE입니다. 이중 중첩 배치 형태, author_exclude → author__not_in 싱크, 가짜 WP_Post UNION 프리미티브, 커스터마이저 브리지 개념은 모두 공개된 기술입니다(계보는 아래에 명시됨).
  • 새로운 익스플로잇 프리미티브가 아닙니다. 공개 지형에 대한 델타는: 운영 증거가 있는 제거된 베이스 객체 캐시 수정, 운영 안전 기본값, 탐지 문서화—기술의 참신함이 아니라 견고성과 운영 안전성입니다.
  • IoC 문자열은 임의적입니다. 로그인 접두사, 플러그인 슬러그, 셸 마커, User-Agent 값은 모든 변형과 실행마다 다릅니다.

참조

  • Icex0/wp2shell-poc - 이 저장소의 계열이 공유하는 전체 체인 구현 https://github.com/Icex0/wp2shell-poc
  • sergiointel/wp2shell-poc - 첫 번째 공개 PoC; 크랙 없는 관리자 생성 기술의 원본 https://github.com/sergiointel/wp2shell-poc
  • 0xsha/wp2shell - 6개의 공개 PoC를 통합한 단일 파일, Docker 실험실 및 버전×DB 매트릭스 포함(객체 캐시 전제 조건 문서화) https://github.com/0xsha/wp2shell
  • OUTFILE 변형 (블라인드 읽기 + INTO OUTFILE 드로퍼), Sploitus에 미러링됨 https://sploitus.com/exploit?id=7CD079AD-E27B-5C54-A696-60635BFDB241
  • 공개 PoC 및 체커의 선별된 목록 (방어자용) https://www.cyberkendra.com/2026/07/wp2shell-guide.html
  • GHSA-ff9f-jf42-662q / GHSA-fpp7-x2x2-2mjf; WordPress 7.0.2 릴리스 공지 README.md 참조를 확인하세요.
도구 다운로드