SQL-Injection

SQL-Injection: So schützen Sie Ihre Webserver vor Hackerangriffen

SQL-Injections gehören zu den häufigsten Angriffsmethoden auf Web-Applikations- und Datenbankservern. Internet Magazin zeigt, wie Sie einen Webserver abschirmen und Hacker in Schach halten.

Sicherheit

© Archiv

Sicherheit

Datenbanken zählen zu den beliebtesten Angriffszielen, denn sie halten meist große Mengen wertvoller Information in konzentrierter Form bereit. Bei einer SQL-Injection nutzt der Angreifer eine Sicherheitslücke in Web-Applikationen aus, die aus der Übernahme unzureichend geprüfter und nicht bereinigter Daten in eine SQL-Datenbank resultiert.Im Artikel "PHP-Filter" wurde im Detail aufgezeigt, dass die Eingabe in eine Web-Applikation gefiltert und die Ausgabe ausmaskiert werden muss. Unterlässt man diese beiden Vorsichtsmaßnahmen beim Einsatz einer SQL-Datenbank, so öffnet man Tür und Tor für SQL-Injections.In der SQL-Syntax haben bestimmte Metazeichen wie das Anführungszeichen, der Apostroph, der umgekehrte Schrägstrich und das Semikolon eine eigene Bedeutung. Werden Benutzereingaben, zum Beispiel aus Formularfeldern, ungefiltert an den SQL-Interpreter weitergegeben, werden sie von ihm ausgeführt.Dadurch lassen sich andere Sicherheitsmechanismen der Web-Applikation wie etwa das Login umgehen. Werden die Daten bei einer Datenbankabfrage unmaskiert ausgegeben, können sie wiederum mit der Syntax der Datenbankabfrage kollidieren und Datenbankfehler erzeugen.

Nicht bereinigte Anführungszeichen

Bei einer SQL-Injection nutzt der Angreifer ein Formulareingabefeld oder sendet eine Zeichenkette an ein auf dem Server befindliches Skript, welches Parameter über die URL entgegennimmt. Reagiert der SQL-Parser bereits auf ein einzelnes Anführungszeichen mit einem Fehler (etwa "500 server error"), ist es ein sicheres Zeichen, dass die Eingabe nicht bereinigt wurde und die Datenbank verwundbar ist.

Da die Struktur einer SQL-Datenbank dem Angreifer in der Regel unbekannt ist, benötigen Hacker meist mehrere Anläufe, um Schwachpunkte ausfindig zu machen. Liefert der Parser informative Fehler, kann der Angreifer durch etwas Raten und Herumprobieren den Aufbau der Datenbank schrittweise ermitteln.

Oft bietet die Webseite recht informative Hinweise wie die Namen von Variablen, die Datenbankfeldern gleichen (etwa im Quelltext der Formularfelder), die Namen einiger Benutzer (auf der Impressum-Seite) et cetera.

Schwächen in Web-Formularen

Angenommen, ein Angreifer kennt weder die Zugangsdaten zur Datenbank noch ihre genaue Struktur. Ein Angreifer, der mit einem Formular zum Einloggen konfrontiert wird, spekuliert über die Weise, wie die Abfrage zur Validierung des Benutzernamens und des Passwortes funktioniert.

Sicherheit

© Archiv

Diagnose der Verwundbarkeit einer Web-Applikation durch SQL-Injections mittels sqlmap.

Ein Blick in den HTML-Quelltext gibt meist schon zu viel preis. Besonders leicht hat es der Angreifer, wenn die gewählten Namen leicht zu erraten sind, etwa wenn der Benutzername in der Variable $benutzername und das Passwort in der Variable $passwort gespeichert werden und die zugehörigen Datenbankfelder genauso heißen:

<form action="/login.php" method=
"POST"><p>Benutzername: <input type=
"text" name="benutzername" /></p><p>Passwort: <input type="password"
name="passwort" /></p><p><input type="submit"
value="submit" /></p></form>

Wer aber meint, dass kreative Variablennamen wie etwa $namedesbenutzers und$ sicherheitspasswt statt $benutzername und $passwort sich als Sicherheitsmaßnahme qualifizieren, der irrt leider.

mysql_error() im Deployment

Manche Web-Entwickler bieten den Hackern unfreiwilligerweise hilfreiche Anhaltspunkte, indem sie etwa mysql_error() nutzen. Solange man seinen Quelltext debuggen muss, ist dieser Ansatz zu begrüßen, doch sobald die Webseite in der finalen Deployment-Fassung vorliegt, ist der Einsatz von mysql_error eher als eine Sicherheitslücke zu bezeichnen, da es potenziellen Hackern viel zu viele Informationen preisgibt, zum Beispiel:

Mehr zum Thema

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".