Was ist SQL-Injection? Beispiele und Tipps zur Prävention

Erfahren Sie, wie SQL-Injection funktioniert und wie diese gefährliche Schwachstelle es Angreifern ermöglicht, Datenbanken zu manipulieren, Daten zu stehlen und gravierende Sicherheitsverletzungen zu verursachen.

Verfasst von
Davin Jackson
Davin Jackson
Feb 6, 2025
7 minute read
eSecurity Planet Inhalte und Produktempfehlungen sind redaktionell unabhängig. Wir können Geld verdienen, wenn Sie auf Links zu unseren Partnern klicken. Mehr erfahren

SQL-Injection (SQLi) ist ein Cyberangriff, bei dem schädlicher SQL-Code in anfällige Webanwendungen eingeschleust wird. Dadurch können Angreifer Datenbankabfragen manipulieren und stören, um sich unbefugten Zugriff auf den Server zu verschaffen. Je nach Befehl kann ein erfolgreicher SQL-Injection-Angriff verheerende Folgen haben und für Unternehmen zu Umsatz- und Reputationsverlusten führen.

SQL-Injection gehört aufgrund ihrer Auswirkungen und der zahlreichen Möglichkeiten, Server und Anwendungen zu identifizieren und auszunutzen, zu den größten Schwachstellen. Entwickler haben jedoch deutliche Verbesserungen erzielt, um SQLi-Angriffe zu erkennen und abzuwehren.

Wie funktioniert SQL-Injection?

Structured Query Language (SQL) ist eine standardisierte Sprache für den Zugriff auf und die Bearbeitung von Datenbanken, mit der sich anpassbare Datenansichten für jeden Benutzer erstellen lassen. Wenn Anwendung und Code nicht ordnungsgemäß bereinigt sind, kann schädlicher Code in Eingabebereiche und Formularfelder von Websites und Anwendungen eingeschleust werden.

SQL-Injection tritt auf, wenn Angreifer schädliche SQL-Abfragen in unsichere Eingabefelder wie Benutzername- und Passwortfelder oder Suchleisten einschleusen. Die Abfrage wird an die Backend-Datenbank gesendet, die den Code anschließend als legitime Anfrage akzeptiert und die Informationen an den Anfragenden zurückgibt.

Erfolgreiche SQLi-Angriffe können zu unbefugtem Zugriff, zum Erlangen sensibler Informationen wie Zugangsdaten und zur Manipulation von Daten führen – etwa durch das Hinzufügen oder Entfernen von Daten sowie das Löschen von Dateien und Ordnern:

  • Zugangsdaten stehlen: Angreifer können SQLi-Abfragen verwenden, um auf Benutzernamen und Passwörter zuzugreifen und diese zu stehlen.
  • Auf Websites und Anwendungen zugreifen: Anmeldefelder wie Benutzername und Passwort lassen sich mit einer SQL-Abfrage umgehen – etwa mit ‘OR 1=1 —– in den Benutzername- und Passwortfeldern. Dieser Code bringt die Anwendung dazu, eine Abfrage auszuführen, die immer „true“ zurückgibt. So kann sich der Angreifer als gültiger Benutzer ausgeben und auf die Anwendung zugreifen.
  • Daten verändern: Anwendungen, die für SQL-Injection anfällig sind, können böswilligen Akteuren Zugriff auf Daten in der Datenbank ermöglichen, darunter sensible Informationen wie Gesundheits- und Finanzdaten. Verfügt der Angreifer durch den SQLi-Exploit über erweiterte Berechtigungen, kann er Daten hinzufügen, ändern oder löschen.
Advertisement

SQL-Injection kann in verschiedenen Formen auftreten und gehörte in der jüngeren Vergangenheit zu den am häufigsten ausgenutzten Schwachstellen. Gleichzeitig wurden erhebliche Fortschritte dabei erzielt, Fehler im Anwendungscode zu finden und eine Ausnutzung zu verhindern.

Arten von SQL-Injection-Angriffen

SQL-Injection-Angriffe treten in vielen Formen auf – von den verbreiteten Varianten wie fehlerbasierten, union-basierten und blinden SQLi-Angriffen bis hin zu den weniger verbreiteten Out-of-Band-Angriffen:

  • Fehlerbasierte SQL-Injection: Bei fehlerbasierter SQLi sammeln Angreifer Informationen über die Datenbank, indem sie die von der Datenbank ausgegebenen Fehlermeldungen analysieren. In manchen Fällen liefern Fehlermeldungen böswilligen Akteuren wertvolle Einblicke und helfen ihnen dabei, anfällige Datenbanken aufzuspüren.
  • Union-basierte Angriffe: Union-basierte SQLi ist eine SQL-Injection-Technik, die den SQL-Operator UNION verwendet, um die Ergebnisse mehrerer SELECT-Anweisungen zu kombinieren. Union-basierte Angriffe können Daten aus verschiedenen Datenbanktabellen in einem einzigen Ergebnis abrufen.
  • Blinde SQL-Injection: Blinde SQLi-Angriffe sind schwieriger auszunutzen als fehler- oder union-basierte Angriffe, unter anderem weil keine Daten übertragen werden. Das Ergebnis eines versuchten Exploits ist nicht sichtbar, weshalb diese Variante gemeinhin als „blind“ bezeichnet wird. Stattdessen interagieren die Angriffe mit der Datenbank, indem sie Payloads senden, um die Reaktion der Anwendung zu beobachten.
    Diese Payloads sind zeit- oder booleschebasiert. Zeitbasierte blinde SQLi-Angriffe versuchen, eine Zeitverzögerung auszulösen, während boolesche Angriffe eine Änderung in der HTTP-Antwort der Anwendung bewirken.
  • Out-of-Band-SQLi: Out-of-Band-SQLi kommt seltener vor als die anderen Varianten und funktioniert nur, wenn bestimmte Funktionen des Datenbankservers aktiviert sind. Out-of-Band-Angriffe stützen sich nicht auf Datenbankabfragen, Fehlermeldungen oder HTTP-Antworten. Stattdessen veranlassen sie den Server, DNS- oder HTTP-Anfragen zu erstellen, damit die Anwendung Daten an einen von den Angreifern kontrollierten entfernten Endpunkt sendet.

Unabhängig von der ausgenutzten Form der SQL-Injection ist das Ziel immer dasselbe: unbefugten Zugriff auf Anwendungen zu erlangen und alle Daten zu exfiltrieren, die nützlich erscheinen oder die größtmögliche Wirkung versprechen. Im Laufe der Jahre sind wir alle Opfer eines oder mehrerer Datenlecks geworden, die auf eine für SQL-Injection anfällige Datenbank zurückzuführen waren.

3 Beispiele dafür, wie Angreifer SQL-Injection-Schwachstellen ausnutzen

Früher war SQL-Injection sehr verbreitet. Eine Zeit lang stand sie auf Platz eins der OWASP Top 10 der Schwachstellen in Webanwendungen. Der Grund dafür war, dass SQL-Injection-Schwachstellen in den meisten Anwendungen gefunden wurden und Entwickler keine Best Practices wie Bereinigungstechniken einsetzten. Dies führte zu mehreren großen Datenlecks, unter anderem bei Heartland Payment Systems, Sony Pictures und Equifax:

  • Heartland Payment Systems: 2008 entdeckten Angreifer eine SQL-Injection-Schwachstelle auf einer Anmeldeseite. Anschließend verwendeten sie schädlichen SQL-Code wie user ‘OR 1=1 – in den Benutzername- und Passwortfeldern. Bei der Verarbeitung durch die Datenbank geben diese Abfragen den Wert „true“ zurück, wodurch Zugriff gewährt wird und die Angreifer sensible Benutzerdaten wie Sozialversicherungsnummern und andere Informationen stehlen können, um eigene Kreditkarten zu erstellen.
  • Sony Pictures: Eine als LulzSec bekannte Hackergruppe drang in die Website von Sony Pictures ein und veröffentlichte Datenbanken mit unverschlüsselten personenbezogenen Informationen von mehr als 1 Million Menschen. Die Gruppe behauptete, sie hätte „jede noch so kleine Information“ stehlen können, wenn sie gewollt hätte. Je nachdem, wo auf der Website der Payload ausgeführt wurde, hat die Hackergruppe wahrscheinlich eine Eingabe wie ‘ UNION SELECT username, password FROM users– eingegeben, um Benutzerdaten zu stehlen. Dieser Befehl ruft den Inhalt einer Datenbanktabelle namens users sowie zweier Spalten namens username und password ab.
  • Equifax: Im Mai 2017 entdeckten böswillige Akteure eine Schwachstelle in einer Equifax gehörenden Anwendung, die es ihnen ermöglichte, Befehle aus der Ferne auszuführen. Anschließend nutzten sie diesen Exploit, um speziell präparierte SQL-Befehle an den Server zu senden und auf die personenbezogenen Daten von fast 150 Millionen Menschen zuzugreifen. Damit wurde der Vorfall zu einem der größten Datenlecks der Geschichte.
Advertisement

SQL-Injection kann für Unternehmen verheerende Folgen haben. Wer jedoch proaktiv handelt und Schwachstellen findet, bevor es die Angreifer tun, kann dies verhindern.

Häufige Anzeichen dafür, dass Ihre Website für SQL-Injection anfällig ist

Bei der Suche nach SQL-Injection-Schwachstellen können Sie verschiedene Tools und Techniken einsetzen, darunter Schwachstellenscanner. Sie können auch Bewertungen wie Penetrationstests durchführen oder Code-Reviews vornehmen. Diese Tools erfordern zwar geschulte Fachleute, doch es gibt einige weitere Dinge, auf die Sie achten können.

Zu den häufigen Anzeichen dafür, dass Ihre Website anfällig sein könnte, gehören:

  • Fehlermeldungen mit Datenbankinformationen: Wenn Sie bestimmte Zeichen wie ein einfaches Anführungszeichen oder Hochkomma ( ‘ ) in Formulare oder Suchleisten eingeben, zeigt die Anwendung Fehlermeldungen an, die SQL-Datenbankinformationen enthalten, etwa den SQL-Typ oder die SQL-Version, Angaben zu Spalten und Tabellen oder Teile der SQL-Abfrage.
  • Unerwartetes Verhalten: Die Eingabe bestimmter Zeichen in die Eingabefelder führt dazu, dass die Anwendung unerwartete Ergebnisse zurückgibt, etwa große Datenmengen anzeigt oder die Website zum Absturz bringt.
  • Ungewöhnlich viele Datenbankabfragen: Bei der Überwachung der Datenbankaktivität fällt möglicherweise ein plötzlicher Anstieg bei Benutzereingaben oder Abfragen auf, oder es scheint, dass auf Daten zugegriffen oder diese verändert werden. Dies kann auf eine Schwachstelle zurückzuführen sein, die jemand auszunutzen versucht.
  • Nicht autorisierte Datenmanipulation: Sensible Daten aus Ihrer Datenbank scheinen verändert worden zu sein oder abgerufen zu werden, ohne dass eine erkennbare Benutzeraktion stattgefunden hat.

Das manuelle Testen von Eingabefeldern auf Websites, etwa Suchleisten und Anmeldemasken, von URL-Parametern oder sogar der Datenbank selbst mit einfachen SQL-Injection-Strings – wie ” ‘ OR ‘1=’1 ” – und die Überprüfung auf unerwartetes Verhalten kann ausreichen, um eine SQLi-Schwachstelle zu erkennen.

3 Tipps zum Schutz von Webanwendungen vor SQL-Injection

Die Sicherheit von Webanwendungen hat sich im Laufe der Zeit deutlich verbessert. Entwickler sind sich der SQL-Injection-Schwachstellen stärker bewusst und haben verschiedene Präventionsmaßnahmen umgesetzt. Zu diesen Strategien gehören unter anderem Eingabevalidierung, Web Application Firewalls und parametrisierte Abfragen:

  • Eingaben bereinigen: Überprüfen und überwachen Sie regelmäßig alle Bereiche Ihrer Anwendung, die Benutzereingaben zulassen und mit der Datenbank interagieren. Achten Sie darauf, Eingaben zu entfernen oder zu „bereinigen“ , indem Sie unsichere Zeichen löschen, um die Verwendung schädlichen Codes zu verhindern. Erstellen Sie eine Allowlist, um gültige Eingaben zu bestimmen, und weisen Sie verdächtige Eingaben zurück.
  • Eine Web Application Firewall installieren: Implementieren Sie eine Web Application Firewall oder „WAF“, um häufige Angriffe wie SQL-Injection zu erkennen und zu blockieren. WAFs überwachen den Webverkehr auf ungewöhnliche Aktivitäten. Die Firewall kann IT-Teams über ungewöhnliche Anfragen oder Muster informieren, die für SQLi typisch sind.
  • Parametrisierte Abfragen verwenden: Parametrisierte Abfragen oder vorbereitete Anweisungen verwenden Platzhalter für Parameter anstelle von Werten und trennen die SQL-Logik von den übergebenen Daten. Dadurch behandelt die Datenbank die Eingabe als Daten und nicht als ausführbaren Code.
Advertisement

Diese Maßnahmen zu ergreifen und regelmäßig Sicherheitsprüfungen sowie Penetrationstests durchzuführen, kann das Risiko, dass Ihre Anwendungen einer SQL-Injection ausgesetzt werden, deutlich reduzieren. Diese Präventionsmaßnahmen haben es schwieriger gemacht, SQL-Injection zu finden und auszunutzen, wodurch die Schwachstelle in den OWASP Top 10 von Platz 1 auf Platz 3 gefallen ist.

Weitere Tipps zur Vermeidung von SQL-Injection-Angriffen, einschließlich einer Liste von Open-Source-Tools, finden Sie in diesem Artikel.

Häufig gestellte Fragen

Hier finden Sie einige häufig gestellte Fragen zu SQL-Injection:

  1. Sind alle SQL-Versionen für SQL-Injection anfällig?
    Ja. Obwohl sich die Syntax der Abfragen unterscheiden kann, sind alle SQL-Datenbanken wie MySQL, Oracle, PostgreSQL, NoSQL und andere für SQL-Injection anfällig.
  2. Welche Anwendungen sind betroffen?
    Jede Website oder Anwendung, die ohne geeignete Schutzmaßnahmen mit einer Datenbank interagiert, ist für einen SQLi-Angriff anfällig. Dazu gehören datengetriebene Anwendungen wie soziale Medien, Umfragen, Such-Apps und Anwendungen zur Berichtserstellung.
  3. Wie testet man auf SQL-Injection?
    Mehrere Tools und Scanner können auf alle Schwachstellen von Webanwendungen testen. Tests lassen sich jedoch auch manuell durchführen, indem SQL-Payloads in jeden Einstiegspunkt der Anwendung eingefügt werden. Über diese Einstiegspunkte können Benutzer Eingaben machen, etwa in Foren, Kommentarbereichen und Anmeldeseiten.

Für optimale Ergebnisse sollten Sie ein Unternehmen beauftragen, das auf Penetrationstests von Anwendungen spezialisiert ist und regelmäßig Tests Ihrer Anwendungen durchführt.

Fazit: SQL-Injection ist alt, aber weiterhin gefährlich

Obwohl SQL-Injection-Angriffe nicht mehr so häufig vorkommen wie vor 10 oder sogar 20 Jahren, handelt es sich weiterhin um eine Schwachstelle, die bei ihrer Entdeckung und Ausnutzung massive Schäden verursachen kann. Unternehmen sollten sichere Programmiertechniken einsetzen und ihre Anwendungen regelmäßig testen, um SQLi-Schwachstellen zu verhindern.

Sehen Sie sich unser Video darüber an, wie Sicherheitsforscher mithilfe von SQLi die TSA-Kontrollen umgingen.

Davin Jackson

Davin Jackson is the cybersecurity media personality for eSecurity Planet. He is a proud father, husband, United States Air Force veteran, and seasoned cybersecurity professional and instructor. Davin has many licenses and certifications and almost 20 years of experience in tech and cybersecurity working with organizations of various sizes to enhance their security posture and ensure protection against cyber threats. In his free time, Davin runs an esports program where he uses gaming to engage young people in conversations about tech, STEM, and cybersecurity.

eSecurity Planet Logo

eSecurity Planet is a leading resource for IT professionals at large enterprises who are actively researching cybersecurity vendors and latest trends. eSecurity Planet focuses on providing instruction for how to approach common security challenges, as well as informational deep-dives about advanced cybersecurity topics.

Eigentum von TechnologyAdvice. © 2026 TechnologyAdvice. Alle Rechte vorbehalten

Werbetreibenden-Offenlegung: Einige der auf dieser Website erscheinenden Produkte stammen von Unternehmen, von denen TechnologyAdvice eine Vergütung erhält. Diese Vergütung kann beeinflussen, wie und wo Produkte auf dieser Website erscheinen, einschließlich beispielsweise der Reihenfolge, in der sie erscheinen. TechnologyAdvice schließt nicht alle Unternehmen oder alle auf dem Marktplatz verfügbaren Produkttypen ein.