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

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…
News
Video
SciFi-Action mit Ryan Gosling und Harrison Ford
Video
Agatha-Christie-Verfilmung mit Johnny Depp
Video
Kinostart: 23.11.2017