wp2shell — WordPress REST API 시간 기반 블라인드 SQLi → RCE 개념 증명(PoC)
설명
poc_wp_tot.py는 WordPress REST API 배치 엔드포인트의 시간 기반 블라인드 SQL 인젝션 취약점을 악용하여, 권한 상승 체인을 거쳐 Remote Code Execution(RCE)까지 도달하는 개념 증명(PoC)입니다.
테스트 대상 취약점:
- CVE-2026-63030
- CVE-2026-60137
중요 경고
- 본 도구는 소유한 시스템 또는 명시적인 서면 테스트 승인을 받은 시스템에서만 사용하십시오. 오용 시 불법적이거나 파괴적인 결과를 초래할 수 있습니다.
- 작성자: GhostGTR666 (github.com/gagaltotal)
- PoC 버전: 1.0.0
요구 사항
- Python 3.8+ (권장)
- 대상 WordPress에 대한 네트워크 연결
- 테스트 환경에서 스크립트를 실행할 수 있는 액세스 권한
설치
poc_wp_tot.py 파일을 작업 디렉터리에 클론하거나 복사합니다.
- (선택 사항) 가상 환경을 생성합니다:
python3 -m venv venv
source venv/bin/activate
사용 방법

스크립트는 probe(탐지), extract(데이터 추출), rce(명령 실행)의 세 가지 작동 모드를 제공합니다. 다음은 사용 예시입니다.
Probe (취약점 확인):
python3 poc_wp_tot.py https://target.example.com/
python3 poc_wp_tot.py -v https://target.example.com/ "SELECT user_login FROM wp_users LIMIT 1"
RCE (원격 명령 실행 — 전체 익스플로잇 체인):
python3 poc_wp_tot.py https://target.example.com/ -c "id && uname -a"
일반 옵션
-h, --help : 도움말 메시지 표시
-v, --verbose: 상세(디버그) 출력 활성화
-c <COMMAND> : RCE 모드 — 대상에서 셸 명령 실행
간단한 기술 요약
- 스크립트는 WordPress REST API 배치 엔드포인트를 활용하여, 대상 서버에서
SLEEP() 함수가 부울 조건으로 실행되도록 하는 SQL 페이로드를 주입합니다(시간 기반 블라인드 SQLi).
- 응답 시간에 대한 이진 탐색 기반 프로빙 및 추출 기법을 통해 스크립트는 데이터베이스에서 문자열과 정수를 추출할 수 있습니다.
- 익스플로잇 체인은 SQL 페이로드를 통해 oEmbed 항목을 시드(seed)하고, 생성된 포스트 캐시를 찾아 악성 변경 집합(changeset)을 구성하며, 새 관리자 계정을 만들고 RCE를 위해 실행되는 PHP 플러그인을 업로드합니다.
위험 및 완화 조치
- 이 스크립트는 WordPress 설치에 영구적인 변경(예: 계정 생성, 플러그인 업로드)을 초래할 수 있습니다. 통제된 환경(랩)에서 테스트를 수행하고 백업이 준비되어 있는지 확인하십시오.
- WordPress와 플러그인을 최신 버전으로 즉시 업데이트하고, 필요하지 않은 경우 REST API 액세스를 제한하며, 웹 애플리케이션 방화벽 솔루션을 사용하십시오.
개발자 참고 사항
- 주요 구현 및 로직은
poc_wp_tot.py에 있습니다.
- 전체 흐름을 이해하려면 스크립트의
calibrate(), get_scalar(), exploit_rce() 함수를 참조하십시오.
라이선스 및 저작자 표시
- 이 PoC는 교육/보안 테스트 목적으로 있는 그대로 제공됩니다.
- 원저자: GhostGTR666 — github.com/gagaltotal