CVE-2021-46080
Exploit-Titel: Vehicle Service Management System – „Mehrere“ Cross-Site-Request-Forgery (CSRF) führen zu Stored Cross-Site-Scripting (XSS)
CVE: CVE-2021-46080
CVSS: 4.8 MEDIUM
Referenzen:
Beschreibung:
Im Vehicle Service Management System 1.0 besteht eine Cross-Site-Request-Forgery-(CSRF)-Schwachstelle. Ein erfolgreicher CSRF-Angriff führt zu einer Stored-Cross-Site-Scripting-Schwachstelle.
1. Vehicle Service Management System – „Mechanikerliste“ (/admin/?page=mechanics)
Exploit:
- Besuchen Sie das Admin-Panel http://localhost/vehicle_service/admin
- Erstellen Sie zwei Admin-Konten.
- Melden Sie sich mit dem Admin-1-Konto in Browser A (Chrome) an.
- Melden Sie sich mit dem Admin-2-Konto in Browser B (Firefox) an.
- Navigieren Sie im Admin-1-Konto (Chrome) zum Abschnitt „Mechanikerliste“ und klicken Sie auf die Schaltfläche „Neu erstellen“.
- Injizieren Sie das folgende Payload in das Eingabefeld „Vollständiger Name“.
Payload:
"><script>alert(document.cookie)</script>
- Klicken Sie auf die Schaltfläche „Speichern“.
- Erfassen Sie die Anfrage in burpsuite und generieren Sie die CSRF-HTML-Datei.
- Speichern Sie die CSRF-HTML-Datei, z. B. CSRF.html
- Öffnen Sie die Datei CSRF.html in Browser B (Firefox).
- Navigieren Sie in Browser B (Firefox) zum Abschnitt „Mechanikerliste“.
- Der bösartige JavaScript-Code wird ausgelöst.
2. Vehicle Service Management System – „Serviceanfragen“ (/admin/?page=service_requests)
Exploit:
- Besuchen Sie das Admin-Panel http://localhost/vehicle_service/admin
- Erstellen Sie zwei Admin-Konten.
- Melden Sie sich mit dem Admin-1-Konto in Browser A (Chrome) an.
- Melden Sie sich mit dem Admin-2-Konto in Browser B (Firefox) an.
- Navigieren Sie im Admin-1-Konto (Chrome) zum Abschnitt „Serviceanfragen“ und klicken Sie auf die Schaltfläche „Neu erstellen“.
- Injizieren Sie das folgende Payload in das Eingabefeld „Eigentümer-Kontakt“.
Payload:
"><script>alert(document.cookie)</script>
- Klicken Sie auf die Schaltfläche „Anfrage speichern“.
- Erfassen Sie die Anfrage in burpsuite und generieren Sie die CSRF-HTML-Datei.
- Speichern Sie die CSRF-HTML-Datei, z. B. CSRF.html
- Öffnen Sie die Datei CSRF.html in Browser B (Firefox).
- Navigieren Sie in Browser B (Firefox) zum Abschnitt „Serviceanfragen“.
- Wählen Sie die neu erstellten Serviceanfragen aus und klicken Sie unter „Ansicht“ auf „Aktion“.
- Der bösartige JavaScript-Code wird ausgelöst.
3. Vehicle Service Management System – „Kategorienliste“ (/admin/?page=maintenance/category)
Exploit:
- Besuchen Sie das Admin-Panel http://localhost/vehicle_service/admin
- Erstellen Sie zwei Admin-Konten.
- Melden Sie sich mit dem Admin-1-Konto in Browser A (Chrome) an.
- Melden Sie sich mit dem Admin-2-Konto in Browser B (Firefox) an.
- Navigieren Sie im Admin-1-Konto (Chrome) zum Abschnitt „Kategorienliste“ und klicken Sie auf die Schaltfläche „Neu erstellen“.
- Injizieren Sie das folgende Payload in das Eingabefeld „Kategorienname“.
Payload:
"><script>alert(document.cookie)</script>
- Klicken Sie auf die Schaltfläche „Speichern“.
- Erfassen Sie die Anfrage in burpsuite und generieren Sie die CSRF-HTML-Datei.
- Speichern Sie die CSRF-HTML-Datei, z. B. CSRF.html
- Öffnen Sie die Datei CSRF.html in Browser B (Firefox).
- Navigieren Sie in Browser B (Firefox) zum Abschnitt „Kategorienliste“.
- Der bösartige JavaScript-Code wird ausgelöst.
4. Vehicle Service Management System – „Serviceliste“ (/admin/?page=maintenance/services)
Exploit:
- Besuchen Sie das Admin-Panel http://localhost/vehicle_service/admin
- Erstellen Sie zwei Admin-Konten.
- Melden Sie sich mit dem Admin-1-Konto in Browser A (Chrome) an.
- Melden Sie sich mit dem Admin-2-Konto in Browser B (Firefox) an.
- Navigieren Sie im Admin-1-Konto (Chrome) zum Abschnitt „Serviceliste“ und klicken Sie auf die Schaltfläche „Neu erstellen“.
- Injizieren Sie das folgende Payload in das Eingabefeld „Servicename“.
Payload:
"><script>alert(document.cookie)</script>
- Klicken Sie auf die Schaltfläche „Speichern“.
- Erfassen Sie die Anfrage in burpsuite und generieren Sie die CSRF-HTML-Datei.
- Speichern Sie die CSRF-HTML-Datei, z. B. CSRF.html
- Öffnen Sie die Datei CSRF.html in Browser B (Firefox).
- Navigieren Sie in Browser B (Firefox) zum Abschnitt „Serviceliste“.
- Der bösartige JavaScript-Code wird ausgelöst.
5. Vehicle Service Management System – „Benutzerliste“ (/admin/?page=user/list)
Exploit:
- Besuchen Sie das Admin-Panel http://localhost/vehicle_service/admin
- Erstellen Sie zwei Admin-Konten.
- Melden Sie sich mit dem Admin-1-Konto in Browser A (Chrome) an.
- Melden Sie sich mit dem Admin-2-Konto in Browser B (Firefox) an.
- Navigieren Sie im Admin-1-Konto (Chrome) zum Abschnitt „Benutzerliste“ und klicken Sie auf die Schaltfläche „Neu erstellen“.
- Injizieren Sie das folgende Payload in das Eingabefeld „Vorname“.
Payload:
"><script>alert(document.cookie)</script>
- Klicken Sie auf die Schaltfläche „Speichern“.
- Erfassen Sie die Anfrage in burpsuite und generieren Sie die CSRF-HTML-Datei.
- Speichern Sie die CSRF-HTML-Datei, z. B. CSRF.html
- Öffnen Sie die Datei CSRF.html in Browser B (Firefox).
- Navigieren Sie in Browser B (Firefox) zum Abschnitt „Benutzerliste“.
- Der bösartige JavaScript-Code wird ausgelöst.
6. Vehicle Service Management System – „Einstellungen“ (/admin/?page=system_info)
Exploit:
- Besuchen Sie das Admin-Panel http://localhost/vehicle_service/admin
- Erstellen Sie zwei Admin-Konten.
- Melden Sie sich mit dem Admin-1-Konto in Browser A (Chrome) an.
- Melden Sie sich mit dem Admin-2-Konto in Browser B (Firefox) an.
- Navigieren Sie im Admin-1-Konto (Chrome) zum Abschnitt „Einstellungen“.
- Injizieren Sie das folgende Payload in das Eingabefeld „Systemname“.
Payload:
"><script>alert(document.cookie)</script>
- Klicken Sie auf die Schaltfläche „Aktualisieren“.
- Erfassen Sie die Anfrage in burpsuite und generieren Sie die CSRF-HTML-Datei.
- Speichern Sie die CSRF-HTML-Datei, z. B. CSRF.html
- Öffnen Sie die Datei CSRF.html in Browser B (Firefox).
- Navigieren Sie in Browser B (Firefox) zum Abschnitt „Einstellungen“.
- Der bösartige JavaScript-Code wird ausgelöst.
Auswirkungen:
Eine Cross-Site-Request-Forgery-Schwachstelle besteht an mehreren Endpunkten und führt zu einer Stored-Cross-Site-Scripting-Schwachstelle.
Gegenmaßnahmen:
Es wird empfohlen, Folgendes umzusetzen:
- Unvorhersehbar mit hoher Entropie, wie allgemein bei Session-Tokens.
- An die Session des Benutzers gebunden.
- In jedem Fall streng validiert, bevor die entsprechende Aktion ausgeführt wird.