Beliebiger Datei-Upload
Erlaubt Angreifern, schädliche Dateien auf den Server hochzuladen.
Was ist diese Schwachstelle?
Beliebiger Datei-Upload (Arbitrary File Upload) ermöglicht es Angreifern, Dateien beliebigen Typs auf den Webserver hochzuladen und dabei die vorgesehenen Dateityp-Beschränkungen zu umgehen. Das gefährlichste Szenario ist das Hochladen ausführbarer Dateien (wie PHP-Skripte), die der Angreifer dann über eine URL aufrufen kann, um serverseitigen Code auszuführen. Dies verwandelt einen Datei-Upload effektiv in Remote Code Execution.
Wie nutzt ein Angreifer dies aus?
Angreifer umgehen Upload-Beschränkungen durch verschiedene Techniken: Ändern der Dateierweiterung (.php zu .pHp, .php5, .phtml), Manipulation des MIME-Typs in der HTTP-Anfrage, Verwendung doppelter Erweiterungen (shell.php.jpg), Null-Byte-Injection (shell.php%00.jpg) oder Ausnutzung von Race Conditions während der Upload-Verarbeitung. Sobald eine PHP-Datei hochgeladen ist, navigiert der Angreifer einfach zu deren URL, um Befehle auf dem Server auszuführen.
Mögliche Konsequenzen
- Hochladen einer PHP-Webshell für persistenten Fernzugriff
- Vollständige Website- und Serverübernahme
- Datendiebstahl aus Datenbank und Dateisystem
- Installation von Backdoors, die Plugin-Updates oder Neuinstallationen überleben
- Verunstaltung der Website
- Nutzung des Servers für Spam-Verteilung, Phishing-Hosting oder DDoS-Angriffe
Wie schützen Sie sich
- Dateitypen serverseitig über Magic Bytes validieren, nicht nur über Dateierweiterung oder MIME-Typ
- Hochgeladene Dateien außerhalb des Web-Roots oder in einem Verzeichnis ohne PHP-Ausführung speichern
- Zufällige Dateinamen verwenden, damit Angreifer den Upload-Pfad nicht vorhersagen können
- Restriktive Berechtigungen auf Upload-Verzeichnisse setzen
- .htaccess-Regeln hinzufügen, um PHP-Ausführung in Upload-Verzeichnissen zu verhindern: php_flag engine off
- Dateigrößen-Limits implementieren und Uploads mit Antivirus scannen
Wie finden Angreifer diese Schwachstelle?
Angreifer testen Datei-Upload-Formulare, indem sie Dateien mit verschiedenen Erweiterungen und MIME-Typen einreichen. Sie überwachen, wo Dateien gespeichert werden und ob sie über URL zugänglich sind. Tools wie Burp Suite ermöglichen das Abfangen der Upload-Anfrage zur Manipulation von Dateiinhalt und Headern. Sie testen auf Erweiterungs-Blacklist-Umgehungen, Content-Type-Unstimmigkeiten und Tricks mit doppelten Erweiterungen.
Beispiel-CVEs aus unserer Datenbank
The W3 Total Cache plugin for WordPress is vulnerable to arbitrary file uploads due to missing file type validation in versions up to, and including, 0.9.4.1. This makes it possible for authenticated attackers to upload arbitrary files on the affected sites server which may make remote code execution possible.
The WP Fastest Cache plugin for WordPress is vulnerable to Local File Inclusion in versions up to, and including, 0.8.5.9 via the id POST parameter. This allows authenticated attackers to include and execute arbitrary files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other “safe” file types can be uploaded and included. This is due to an impartial fix of https://ti.wordfence.io/vulnerabilities/3ebe25a7-fa4d-4e3f-b969-2ff3a8388b06.
The NextGen Gallery plugin for WordPress is vulnerable to Path Traversal in versions up to, and including, 2.1.7 via the browse_folder AJAX action and the 'dir' parameter. This allows authenticated attackers to read the contents of arbitrary files on the server, which can contain sensitive information.
The Gravityforms plugin for WordPress is vulnerable to arbitrary file uploads due to missing file type validation via the includes/upload.php file in versions up to, and including, 1.8.19. This makes it possible for unauthenticated attackers to upload arbitrary files on the affected sites server which may make remote code execution possible
The ShortPixel Image Optimizer plugin for WordPress is vulnerable to PHP Object Injection in versions up to, and including, 5.4.1 via deserialization of untrusted input in post content. This allows authenticated attackers with editor capabilities or above to inject a PHP Object. No POP chain is present in the vulnerable plugin. If a POP chain is present via an additional plugin or theme installed on the target system, it could allow the attacker to delete arbitrary files, retrieve sensitive data, or execute code.
... und 1,054 weitere in unserer Datenbank
Typische Auswirkung
Webshell-Installation, vollständige Serverübernahme, persistenter Backdoor-Zugang.
Empfohlene Maßnahme
the affected plugin sofort aktualisieren. Upload-Verzeichnis auf verdächtige Dateien scannen. Ausführbare Dateitypen einschränken.
Ist Ihre WordPress-Seite von dieser Art von Schwachstelle betroffen?
Jetzt Ihre Seite scannen