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 April 1, 2009 02:16:21 von Jeff
Das Dokument mit dem Titel « Angriffe durch die Einschleusung von SQL Befehlen » aus Kioskea.net (de.kioskea.net) wird zur Verfügung gestellt unter den Bedingungen der Creative Commons Lizenz. Sie dürfen das Dokument verwenden, verändern sowie Vervielfältigungen dieser Seite erstellen, unter den Bedingungen, die in der vorgenannten Lizenz erwähnt sind und unter der gleichzeitigen Bedingung, dass Sie im Rahmen Ihrer Verwendung, Veränderung oder Vervielfältigung nach außen hin klar und deutlich auf den Urheber (= de.kioskea.net) des Dokuments hinweisen.
Cross-Site Scripting
Social Engineering