OWASP Top Ten: A1 – Injection

von Dr. Martin Klein Hennig

In diesem Beitrag aus unserer Reihe zur OWASP Top Ten, den häufigsten Sicherheitslücken in Webapplikationen, beschäftigen wir uns mit Injections, also „Injektionen“.

Injection-Sicherheitslücken nutzen eine ungesicherte Verarbeitung von Nutzereingaben aus, z.B. in Eingabefeldern für Namen und Adressen. Statt die vorgesehenen Daten einzugeben, kann ein Angreifer z.B. Programmcode oder Datenbankbefehle in das Feld eingeben. Eine unsichere Webapplikation interpretiert diese Eingabe und führt den eingegebenen Code aus, statt die Eingabe auf ihre Gültigkeit zu überprüfen und ggf. zu verwerfen. Injections werden je nach Art des übermittelten Schadcodes unterschieden.

SQL-Injection

Die am häufigsten auftretende Injection-Attacke, welche auch am häufigsten für den Datenverlust von unzähligen Kundendatensätzen verantwortlich ist, wird als SQL-Injection bezeichnet. SQL steht für „Structured Query Language“ und ist eine Sprache zur Datenbankabfrage. Ein SQL-Statement sieht z.B. so aus:

SELECT * FROM Kunden WHERE Kundennummer = X;

Dieses Beispiel sucht aus der Kunden-Tabelle den Datensatz heraus, der die Kundennummer X hat, wobei X frei durch den Benutzer der Suche gewählt werden kann. Wenn der Nutzer beispielsweise nach der Kundennummer 89075 sucht, würde das exakte SQL-Statement folgendermaßen aussehen:

SELECT * FROM Kunden WHERE Kundennummer = 89075;

SQL bietet noch wesentlich mehr Funktionen als diese einfache Suche und beinhaltet auch Funktionen zum Bearbeiten von Datensätzen.

Der Trick an einer SQL-Injection ist nun, dass ein Angreifer hinter einem Eingabefeld (z.B. für die Suche von Kunden nach Kundennummer) ein SQL-Statement wie oben vermutet: Die Webapplikation fügt die vom Benutzer in das Feld eingegebene Kundennummer in das Statement ein. Gibt der Angreifer statt einer korrekten Kundennummer jetzt aber z.B ...

Zum vollständigen Artikel


Cookies helfen bei der Bereitstellung unserer Dienste. Durch die Nutzung erklären Sie sich mit der Cookie-Setzung einverstanden. Mehr OK