| LetzteCross-Site Scripting | Angriffe durch die Einschleusung von SQL Befehlen | NächstSocial Engineering |
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.
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.
Es gibt bestimmte Grundregeln, mit denen man sich vor Angriffen durch Einschleusung von SQL Befehlen schützen kann :