SQL-Injection
Erlaubt Angreifern, beliebige SQL-Abfragen auf der Datenbank auszuführen.
Was ist diese Schwachstelle?
SQL-Injection (SQLi) ist eine Schwachstelle, die auftritt, wenn vom Benutzer bereitgestellte Daten ohne ordnungsgemäße Validierung oder Escaping in SQL-Datenbankabfragen einbezogen werden. Der Angreifer kann die Abfragelogik verändern, um Daten zu lesen, zu ändern oder zu löschen, auf die er keinen Zugriff haben sollte. Sie wird von OWASP durchgehend als eine der gefährlichsten Web-Schwachstellen eingestuft.
Wie nutzt ein Angreifer dies aus?
Ein Angreifer identifiziert Eingabefelder, die in Datenbankabfragen einfließen (Suchfelder, Login-Formulare, URL-Parameter, Filter). Er schleust SQL-Syntax wie ' OR 1=1 -- ein, um die Abfragelogik zu verändern. In einem Login-Formular kann dies die Authentifizierung vollständig umgehen. In Suchfeldern kann UNION-basierte Injection Daten aus anderen Tabellen extrahieren. Fortgeschrittene Techniken umfassen Blind SQLi (schrittweises Extrahieren von Daten durch Wahr/Falsch-Antworten) und Time-based SQLi (Nutzung von Datenbank-Sleep-Funktionen zur Datenableitung).
Mögliche Konsequenzen
- Vollständiger Datenbank-Dump: Extraktion aller Benutzernamen, Passwörter, E-Mails und personenbezogenen Daten
- Authentifizierungs-Umgehung: Anmeldung als beliebiger Benutzer einschließlich Admins ohne Passwort
- Datenmanipulation: Direkte Änderung von Preisen, Berechtigungen oder Inhalten in der Datenbank
- Lesen sensibler Dateien vom Server über Datenbankfunktionen wie LOAD_FILE()
- Ausführen von Systembefehlen über Datenbankfeatures wie xp_cmdshell (MSSQL) oder INTO OUTFILE (MySQL)
- Vollständige Serverübernahme in Kombination mit Dateischreibfähigkeiten
Wie schützen Sie sich
- Prepared Statements / parametrisierte Abfragen verwenden: Benutzereingaben niemals in SQL-Strings verketten. PDO oder MySQLi mit gebundenen Parametern nutzen
- Ein ORM verwenden: Frameworks wie Laravel Eloquent oder WordPress $wpdb->prepare() übernehmen das Escaping automatisch
- Eingaben validieren und auf Whitelist prüfen: Numerische IDs sollen nur Ganzzahlen akzeptieren, Datumsangaben sollen dem erwarteten Format entsprechen
- Prinzip der minimalen Berechtigung anwenden: Datenbankbenutzer sollen nur die minimal notwendigen Berechtigungen haben
- Web Application Firewalls (WAF) einsetzen: Können gängige SQLi-Muster als zusätzliche Schutzschicht erkennen und blockieren
Wie finden Angreifer diese Schwachstelle?
Angreifer testen auf SQLi, indem sie SQL-Metazeichen (', ", ;, --) an Eingabefelder anhängen und Fehlermeldungen oder Verhaltensänderungen beobachten. Tools wie sqlmap automatisieren den Erkennungs- und Ausnutzungsprozess. Sie suchen nach Datenbank-Fehlermeldungen in Antworten, Zeitunterschieden bei Antworten und booleschen Unterschieden (Seiteninhalt ändert sich basierend auf eingeschleusten Bedingungen).
Beispiel-CVEs aus unserer Datenbank
The Duplicate Page plugin for WordPress is vulnerable to generic SQL Injection via the ‘post' parameter in versions up to, and including, 3.3 due to insufficient escaping on the user-supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for non-privileged attackers (Ex. subscribers) to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
The WP Statistics plugin for WordPress is vulnerable to blind SQL Injection via the ‘page-id’ parameter in versions before 9.4.1 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers at the administrator-level role to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
The All In One WP Security plugin for WordPress is vulnerable to sensitive information disclosure in version 5.1.9. This is due to insufficient encryption on credentials stored in database logs. This makes it possible for attackers to retrieve the username and password of users that have logged into the site, granted they obtain access to the database which would require successfully exploiting another vulnerability such as SQL injection or use of weak passwords.
The PublishPress Capabilities plugin for WordPress is vulnerable to SQL Injection via an unknown parameter in versions up to, and including, 1.5.8 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for role-editing-capable attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
The Simple Membership plugin for WordPress is vulnerable to time-based SQL Injection via the 's' and 'status' parameters in versions up to, and including, 4.0.3 due to insufficient escaping on the user-supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated Admin+ attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
... und 1,318 weitere in unserer Datenbank
Typische Auswirkung
Datendiebstahl, Datenmanipulation, Umgehung der Authentifizierung, Serverübernahme.
Empfohlene Maßnahme
the affected plugin sofort aktualisieren. Parametrisierte Abfragen und Prepared Statements verwenden.
Ist Ihre WordPress-Seite von dieser Art von Schwachstelle betroffen?
Jetzt Ihre Seite scannen