
WordPress wp2shell 취약점 체인 스캐너로, CVE-2026-63030 및 CVE-2026-60137을 대상으로 하며 능동적 탐지, 선택적 PoC, JSON 내보내기를 지원합니다.
CVE-2026-63030 및 CVE-2026-60137 – WordPress wp2shell 취약점 체인 스캐너
선택적 명령 검증 PoC가 포함된 인가된 보안 연구용 도구
wp2shell-scanner는 공개된 WordPress 증거를 검증하고, 노출된 버전을 핑거프린팅하며,
REST 배치 동작을 확인하고, 활성 타이밍 차이를 측정하여 WordPress wp2shell 취약점 체인을
감지합니다. 이 도구는 인가된 방어적 연구, CTF 환경, 그리고 본인이 소유하거나 관리하는
시스템을 대상으로 합니다.
이 프로젝트는 인가된 보안 테스트와 방어적 연구 목적으로만 제공됩니다.
-p/--poc는 최선의 정리(cleanup)를 시도하기 전에 WordPress 상태를 변경합니다.whoami 또는 연구자가 제공한 명령 사용.requirements.txt에 명시된 의존성:
requestscolorama이 저장소를 확보한 다음 루트 디렉터리에서 의존성을 설치하십시오.
프로젝트 디렉터리로 이동합니다:
cd wp2shell-scanner
선택 사항이지만 권장: 가상 환경을 생성하고 활성화합니다:
python3 -m venv .venv
source .venv/bin/activate
# Windows PowerShell: .venv\Scripts\Activate.ps1
의존성을 설치합니다:
python3 -m pip install -r requirements.txt
CLI가 사용 가능한지 확인합니다:
python3 wp2shell-scanner.py -h
도움말 표시:
python3 wp2shell-scanner.py -h
대상 없이 도구를 실행하면 브랜드 도움말 텍스트가 표시되고 사용법 오류와 함께 종료됩니다.
정확히 하나의 대상 소스를 제공하십시오: 단일 대상의 경우 -u/--url, 대상 파일의 경우
-l/--list.
python3 wp2shell-scanner.py -u https://wordpress.example
스킴(scheme)이 없는 대상은 http:// URL로 처리됩니다. 대상 목록 파일은 한 줄에
하나의 URL을 사용합니다. 빈 줄과 #로 시작하는 줄은 무시됩니다. 잘못된 항목은
줄 번호와 함께 보고됩니다.
지원되는 진입점은 루트 스크립트입니다:
python3 wp2shell-scanner.py -u https://wordpress.example
| 옵션 | 설명 | 기본값 |
|---|---|---|
-u URL, --url URL | WordPress 대상 URL 하나를 스캔합니다. --list와 함께 사용할 수 없습니다. | 없음 |
-l FILE, --list FILE | 텍스트 파일에서 대상 URL을 스캔합니다. --url과 함께 사용할 수 없습니다. | 없음 |
| 옵션 | 설명 | 기본값 |
|---|---|---|
-p, --poc | 활성 확인 후 상태를 변경하는 명령 검증 PoC를 실행합니다. --command가 제공되지 않으면 whoami를 사용합니다. | 꺼짐 |
-c COMMAND, --command COMMAND | --poc 동안 COMMAND를 실행합니다. --poc가 필요합니다. | whoami |
-t N, --threads N | 목록 스캔을 위한 동시 대상 워커 수. N은 최소 1이어야 합니다. | 10 |
| 옵션 | 설명 | 기본값 |
|---|---|---|
-o FILE, --output FILE | 결과의 UTF-8 JSON 배열을 FILE에 씁니다. 기본적으로 확인된 취약 결과만 포함됩니다. | 없음 |
--all-results | --output에 비취약, WordPress 아님, 오류 결과를 포함한 모든 스캔 결과를 포함합니다. | 꺼짐 |
-v, --verbose | 최종 PoC HTTP 상태 및 X-Action-Redirect 헤더를 표시합니다. | 꺼짐 |
-q, --quiet | PoC 실행 성공 시 정규화된 명령 출력만 출력합니다. 실패 및 정리 경고는 stderr로 전송됩니다. | 꺼짐 |
--no-color | 색상 터미널 출력을 비활성화합니다. | 꺼짐 |
단일 대상 스캔:
python3 wp2shell-scanner.py --url https://wordpress.example
20개 워커로 대상 목록 스캔:
python3 wp2shell-scanner.py --list targets.txt --threads 20
스캐너가 대상을 활성 확인한 후에만 상태 변경 검증 PoC 실행:
python3 wp2shell-scanner.py -u https://wordpress.example -p
연구자가 제공한 명령을 실행하고 정규화된 다중 라인 출력만 출력:
python3 wp2shell-scanner.py --url https://wordpress.example -p --command "ls -la" --quiet
확인된 취약 결과만 JSON으로 쓰거나, --all-results로 모든 대상 포함:
python3 wp2shell-scanner.py --list targets.txt --output results.json
python3 wp2shell-scanner.py --list targets.txt --output results.json --all-results
| 결과 | 의미 |
|---|---|
| VULNERABLE | 활성 타이밍 프로브가 취약점 체인을 확인했습니다. 즉시 대상을 패치하십시오. |
| POTENTIALLY AFFECTED | 공개 버전이 영향을 받는 범위에 속하지만, 활성 확인이 차단되었거나 결론이 나지 않았습니다. 패치하고 조사하십시오. |
| NOT VULNERABLE | 활성 프로브가 확인되지 않았고 영향을 받는 공개 버전도 감지되지 않았습니다. |
| NOT WORDPRESS | 공개 WordPress 증거를 찾을 수 없습니다. |
| ERROR | 네트워크, TLS, 대상 입력 또는 예상치 못한 응답 오류로 안정적인 스캔이 불가능했습니다. |
영향을 받는 안정 릴리스는 WordPress 6.9.0–6.9.4 및 7.0.0–7.0.1입니다. 즉시 6.9.5 또는 7.0.2 이상 릴리스로 업데이트하십시오.
| 코드 | 의미 |
|---|---|
0 | 스캔이 POTENTIALLY AFFECTED 결과 없이 완료되었습니다. 확인된 취약 결과도 이 코드를 사용합니다. |
1 | 최소 하나의 대상이 POTENTIALLY AFFECTED입니다. |
2 | 대상 입력이 잘못되었거나 예약된 모든 대상이 오류로 종료되었습니다. |
이 프로젝트는 MIT License에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE를 참조하십시오.
📬 문의하기: [email protected]