Angriffe durch die Einschleusung von SQL Befehlen

Einschleusung von SQL Befehlen

Angriffe über die Einschleusung von SQL Befehlen sind Angriffe, die gegen Websites gerichtet, die auf relationalen Datenbanken basieren.

Bei diesen Seiten werden Parameter an die Datenbank in der Form einer SQL Anfrage weitergegeben. Wenn der Entwickler die Parameter, die in der SQL Anfrage vorkommen, in keinster Weise kontrolliert, kann ein Hacker die Anfrage so verändern, dass er Zugang zur gesamten Datenbank erhält und sogar deren Inhalt verändern kann.

Mit bestimmten Zeichen kann man erreichen, dass mehrere SQL Anfragen verkettet werden oder der Rest der Anfrage ignoriert wird. Fügt er diese Art von Zeichen in die Anfrage ein, kann der Hacker eine Anfrage seiner Wahl ausführen.

Nehmen wir die folgende Anfrage, die einen Usernamen als Parameter erwartet :

SELECT * FROM user WHERE nom="$nom";

Ein Hacker muss dann nur einen Namen wie « toto" OR 1=1 OR nom ="titi » einsetzen, damit die Anfrage die folgende wird :

SELECT * FROM utilisateurs WHERE nom="toto" OR 1=1 OR nom ="titi";

In der obigen Anfrage wird der WHERE-Befehl immer ausgeführt, das bedeutet, dass er die Aufzeichnungen aller User ausgibt.

Gespeicherte Prozeduren

Außerdem haben bestimmte Datenbankmanagementsysteme, wie Microsoft SQL Server gespeicherte Prozeduren, mit denen Administrationsbefehle ausgeführt werden können. Diese gespeicherte Prozeduren sind unter Umständen gefährlich, weil sie einem böswilligen User ermöglichen können, Systembefehle auszuführen, die möglicherweise auch zum Eindringen führen können.

Gegenmaßnahmen

Es gibt bestimmte Grundregeln, mit denen man sich vor Angriffen durch Einschleusung von SQL Befehlen schützen kann :

  • Das Format der eingegebenen Daten überprüfen, vor allem auf das Vorhandensein von Sonderzeichen ;
  • Keine expliziten Fehlermeldungen anzeigen lassen, die die SQL Anfrage oder einen Teil davon anzeigen
  • Löschen von nicht verwendeten User-Accounts, vor allem Standard-Accounts ;
  • Accounts ohne Passwort vermeiden ;
  • Die Rechte der verwendeten Accounts auf ein Minimun reduzieren ;
  • Gespeicherte Prozeduren löschen ;


Letzte Änderung am Mittwoch 1 April 2009 à 14:16:21


Das Dokument mit dem titel « Angriffe durch die Einschleusung von SQL Befehlen » aus Kioskea (de.kioskea.net) zur verfügung gestellt wird unter den bedingungen der Creative Commons lizenz. Können Sie ändern, Kopien dieser Seite, unter den Bedingungen der Lizenz, als diese Bewertung deutlich.