SQL-Injektion

Autor: Peter Berry
Erstelldatum: 13 August 2021
Aktualisierungsdatum: 22 Juni 2024
Anonim
SQL Injection For Beginners - Learn From A Pro Hacker Now
Video: SQL Injection For Beginners - Learn From A Pro Hacker Now

Inhalt

Definition - Was bedeutet SQL Injection?

Eine SQL-Injection ist ein Computerangriff, bei dem schädlicher Code in eine schlecht gestaltete Anwendung eingebettet und dann an die Backend-Datenbank übergeben wird. Die böswilligen Daten erzeugen dann Datenbankabfrageergebnisse oder Aktionen, die niemals hätten ausgeführt werden dürfen.


Eine Einführung in Microsoft Azure und die Microsoft Cloud | In diesem Handbuch erfahren Sie, worum es beim Cloud-Computing geht und wie Microsoft Azure Sie bei der Migration und Ausführung Ihres Unternehmens aus der Cloud unterstützen kann.

Techopedia erklärt SQL Injection

Lassen Sie uns ein Beispiel für einen SQL-Injection-Angriff durchgehen:

Eine Anwendung, die die Operationen einer Bank ausführt, enthält Menüs, mit denen anhand von Datenpunkten wie der Sozialversicherungsnummer des Kunden nach Kundendaten gesucht werden kann. Im Hintergrund ruft die Anwendung eine SQL-Abfrage auf, die in der Datenbank ausgeführt wird, indem die eingegebenen Suchwerte wie folgt übergeben werden:

SELECT client_name, telefon, adresse, geburtsdatum WHERE social_sec_no = 23425

In diesem Beispielskript gibt der Benutzer den Wert 23425 in das Anwendungsmenü ein und fordert den Benutzer auf, die Sozialversicherungsnummer einzugeben. Anschließend wird unter Verwendung des vom Benutzer angegebenen Werts eine SQL-Abfrage in der Datenbank ausgeführt.

Ein Benutzer mit SQL-Kenntnissen kann die Anwendung verstehen und anstelle eines einzelnen Wertes bei der Abfrage der Sozialversicherungsnummer die Zeichenfolge "23425 oder 1 = 1" eingeben, die wie folgt an die Datenbank übergeben wird:

SELECT client_name, telefon, adresse, geburtsdatum WHERE social_sec_no = 23425 oder 1 = 1

Die WHERE-Klausel ist wichtig, da sie eine Sicherheitsanfälligkeit einführt. In einer Datenbank ist die Bedingung 1 = 1 immer wahr, und da die Abfrage angegeben wurde, um die Details der Kundensozialversicherungsnummer (23425) oder WHERE 1 = 1 zurückzugeben, gibt die Abfrage alle Zeilen in der Tabelle zurück, bei denen es sich nicht um die handelt ursprüngliche Absicht.

Das obige Beispiel für einen SQL-Injection-Angriff ist einfach, zeigt jedoch, wie eine Sicherheitsanfälligkeit ausgenutzt wird, um die Anwendung dazu zu bringen, eine Backend-Datenbankabfrage oder einen Befehl auszuführen.

SQL-Injection-Angriffe können durch die Gewährleistung eines ordnungsgemäßen Anwendungsdesigns verringert werden, insbesondere in Modulen, für die Benutzereingaben zum Ausführen von Datenbankabfragen oder Befehlen erforderlich sind. Im obigen Beispiel könnte die Anwendung so geändert werden, dass sie nur einen numerischen Wert akzeptiert.