SQL Injection

SQL Injection

Copyright ┬ę Shutterstock / bullion73

Was ist SQL Injection?

Bei der SQL Injection handelt es sich um eine Sicherheitsschwachstelle, die regelm├Ą├čig in der OWASP Top 10, einer Liste mit typischen und anerkannten Sicherheitsanf├Ąlligkeiten, gelistet ist. Zur Verbesserung der Internet- und Softwaresicherheit, wird diese Liste mit Anf├Ąlligkeiten von der Non-Profit Organisation OWASP (Open Web Application Security Project) ver├Âffentlicht.

Beschreibung

Bei einer SQL Injection werden spezielle Elemente eines SQL-Befehls durch externe Eingaben beeinflusst, die nicht oder fehlerhaft neutralisiert werden. So kann der beabsichtigte SQL-Befehl ver├Ąndert werden, wenn dieser gesendet wird.

Wenn die SQL-Syntax in den vom Benutzer kontrollierbaren Eingaben nicht ausreichend entfernt oder in Anf├╝hrungszeichen gesetzt wird, kann die generierte SQL-Abfrage dazu f├╝hren, dass diese Eingaben als SQL und nicht als normale Benutzerdaten interpretiert werden. Diese Informationen k├Ânnen verwendet werden, um die Sicherheitspr├╝fungen zu umgehen, oder um zus├Ątzliche Anweisungen einzuf├╝gen. Dabei kann die Back-End-Datenbank ver├Ąndert werden und m├Âglicherweise die Ausf├╝hrung von Systembefehlen einschlie├čen.

Die SQL Injection ist somit ein h├Ąufiges Problem bei datenbankgest├╝tzten Websites. Diese Schwachstelle ist leicht zu erkennen und kann ebenso leicht ausgenutzt werden. Daher ist es wahrscheinlich, dass jede Website oder Softwarepaket mit Benutzerbasis einem SQL-Angriff ausgesetzt ist. Dieser Fehler basiert darauf, dass SQL nicht zwischen Steuerungs- und Datenebene unterscheidet und kann sich aus Fehlern bei der Verwaltung von Sonderzeichen, MAID oder Blacklist bzw. Whitelist ergeben. Dies kann zu Authentifizierungsfehlern f├╝hren.

Identifizierung

Um eine SQL Injection festzustellen werden Fehler-basierte, Boolean-basierte, Anschluss-basierte und gestapelte Abfragen-SQL-Injektionstechniken verwendet. Eine RDBMS-unabh├Ąngige SQL-Schwachstelle wird identifiziert, indem URL- und Formularparameter mit Fragmenten g├╝ltiger und ung├╝ltige SQL-Syntax angreifen wird. Mit dem RDBMS kann ein Fingerabdruck zugeordnet werden, wenn eine bekannte RDBMS-spezifische SQL-Fehlermeldung ausgegeben wird. So kann auch eine Advanced SQL Injection erkannt werden.

Tipp

├ťberpr├╝fen Sie die Sicherheit Ihrer Website mit unserem┬ákostenlosen Security Crawler┬áoder mit der┬áOSG Performance Suite Free Version.

Varianten der SQL Injection

Es gibt mehrere Varianten der SQL Injection, die auf unterschiedliche SQL-Datenbanken ausgerichtet sind:

  • Hypersonic SQL
  • MsSQL
  • MySQL
  • Oracle SQL
  • ProstgreSQL
  • SQLite

Um diese SQL Injections zu identifizieren, wird spezifischer SQL-Syntax verwendet. Diese zu erkennen ist zeitintensiv und dient dazu hartn├Ąckige und nicht offensichtliche SQL-Sicherheitsschwachstellen in den Datenbanken zu finden.

Vermeidung

Um sicherzustellen, dass durch unautorisierte Datenbankzugriffe keine Daten gestohlen werden k├Ânnen, muss zwischen erlaubten und unerlaubten Anfragen unterschieden werden. Es bedarf einer Validierung der Eingaben durch den Benutzer.

Das Anzeigen interner Fehlermeldung erh├Âht das Risiko, dass Informationen angefangen werden und zum Zugriff auf Daten durch unbefugte Dritte verwendet werden.

Datenbanklink zur Schwachstelle

https://cwe.mitre.org/data/definitions/89.html


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte