Was ist SQL Injection?

SQL Injection ist eine Code-Injection-Technik, mit der datengesteuerte Anwendungen angegriffen werden, indem böswillige SQL-Anweisungen in das Ausführungsfeld eingefügt werden. Die Datenbank ist ein wesentlicher Bestandteil jeder Organisation. Dies wird durch eine hohe Sicherheit in einer Organisation erledigt. Lassen Sie uns zuerst lernen, was SQL ist.

Was ist SQL?

SQL ist eine strukturierte Abfragesprache. Wird zur Interaktion und Bearbeitung der Datenbank verwendet.

Was genau macht SQL?

  • Erstellen Sie eine neue Datenbank.
  • Datensätze einfügen, aktualisieren, löschen.
  • Erstellen Sie neue Abfragen.
  • Gespeicherte Prozeduren.
  • Ansichten erstellen.
  • Abfragen ausführen.
  • Berechtigungen festlegen.

Die SQL-Injection ist eine der größten Sicherheitsbedrohungen. Dies fällt unter Cyber-Kriminalität.

In SQL haben wir ein Konzept namens SQL Injection. Diese Technik wird verwendet, um den Code einzufügen. SQLi (SQL-Injection wird auch als Hacking-Typ bezeichnet, dh als Injection-Angriff.) Es wird auch als Web-Hacking-Technik bezeichnet.

Diese Injektion fügt schädlichen Code in die Datenbank ein, indem sie auf einer Webseite Eingaben macht. Diese Eingaben haben einige Bedingungen, die immer zutreffen. Unter diesen Bedingungen bestehen Hacker problemlos Sicherheitstests. Sie können problemlos Daten aus der SQL-Datenbank abrufen. Mit SQL Injection können sie Datensätze in der Datenbank hinzufügen, ändern und löschen. Bei dieser Datenbank kann es sich um eine beliebige MySQL-, SQL Server-, Oracle- oder SQL Server-Datenbank handeln, die illegal ist.

Wenn eine Website oder eine Anwendung schlecht gestaltet ist, können diese Angriffe das gesamte System schädigen. An diesem Punkt kommt die Cybersicherheit ins Spiel.

Das Verhalten von SQL Injection

Diese Angriffe wirken sich im Allgemeinen auf dynamische SQL-Anweisungen aus. Die SQL-Injection ist abhängig von einem Datenbankmodul. Dies ist von Motor zu Motor unterschiedlich. Wenn wir den Benutzer auf der Webseite nach Eingaben wie Benutzername und Passwort fragen. Unbeabsichtigt gewähren wir dem Benutzer Zugriff, um diese Eingaben direkt in die Datenbank einzugeben.

Arten von SQL Injection

  1. In-Band-SQL-Injection (klassische SQL-Injection): Bei dieser Technik verwendet der Hacker dieselbe Methode, um die Datenbank zu hacken und die Daten, dh das Ergebnis, aus der Datenbank abzurufen.
  1. Fehlerbasierte SQL-Injection: Bei diesem Typ erhält der Hacker das Fehlermuster der Datenbank und greift darauf zu. Wir können sagen, dass dies die eine Art von In-Band-SQL-Injection ist.
  1. Union-basierte SQL-Injection: Diese Technik ist auch Teil der In-Band-SQL-Injection. Bei dieser Technik kombiniert der Benutzer die Abfrage und erhält das Ergebnis als HTTP-Teilantwort zurück.
  1. Inferenzielle SQL-Injection (Blind SQL Injection): Wie der Name schon sagt, verwendet der Hacker hier nicht das Band, um Daten aus der Datenbank abzurufen. Hacker kann die Struktur der Datenbank ändern, indem Muster der Datenbank beobachtet werden. Dies ist eine sehr gefährliche Art der SQL-Injection. Die Ausführung dieses Angriffs dauert länger. Hacker kann die Ausgabe eines Angriffs mit dieser Technik nicht sehen.
  1. Boolesche (inhaltsbasierte) Blind-SQL-Injection: Dies ist ein Teil der Inferential-SQL-Injection. Bei dieser Technik zwingt der Hacker die Datenbank dazu, das Ergebnis basierend auf der wahren oder falschen Bedingung abzurufen. Abhängig von dieser Bedingung wird das Ergebnis der HTTP-Antwort geändert. Diese Art von Angriff, um zu schließen, ob die verwendete Nutzlast true oder false zurückgibt, obwohl keine Daten aus der Datenbank zurückgegeben werden. Diese besonders langsamen Angriffe.
  1. Zeitbasierte Blind-SQL-Injection: Diese Technik ist auch Teil der Inferential-SQL-Injection. Diese Technik wird von Hackern verwendet, um die Nutzdaten abzulegen. Bei dieser Technik geben Hacker der Datenbank Zeit, um die Abfrage auszuführen. In der Zwischenzeit bekommt Hacker eine Vorstellung davon, ob es wahr oder falsch ist. Dieser Angriffsprozess ist ebenfalls langsamer Natur.
  1. Out-of-Band-SQL-Injection: Dies ist ein funktionsbasierter Angriff. Dies ist nicht sehr verbreitet. Dieser Angriff wird von einem Hacker verwendet, wenn der Hacker verschiedene Angriffskanäle verwenden muss und andere, um das Ergebnis zu erzielen. Out-of-Band-SQL-Injection-Techniken hängen von der Fähigkeit des Datenbankservers ab, DNS- oder HTTP-Anforderungen zu stellen, um Daten an den Hacker zu liefern.

Wie funktioniert es?

Es gibt hauptsächlich zwei Möglichkeiten, auf die sich der Angreifer konzentriert, um Daten abzurufen:

  1. Direkter Angriff: Verwenden Sie direkt die Kombination verschiedener Werte. Hier hat der Hacker die bestätigte Eingabe eingegeben, die das genaue Ergebnis liefert.
  2. Recherche: Analysieren der Datenbank mit unterschiedlichen Eingaben. Hier beobachtet der Angreifer die Antworten des Datenbankservers und entscheidet, welcher Angriff ausgeführt werden soll.

Wie wir bereits besprochen haben, setzen SQL-Injection-Hacker die Bedingung in das Eingabeelement, was immer wahr ist. Bitte überprüfen Sie das folgende Beispiel.

EX:

Angenommen, wir haben die folgende Abfrage, um Mitarbeiterdaten aus der Datenbank abzurufen:

500 ODER 1 = 1

Wählen Sie * von Mitarbeitern aus, bei denen Userid = '500'

Benutzeridentifikation :

Wenn wir keine Einschränkung für die Eingabe des Benutzers haben. Dann können Hacker dieses Feld verwenden, um einfach auf Daten aus der Datenbank zuzugreifen.

Und die Abfrage könnte wie folgt aussehen

Wählen Sie * aus Mitarbeitern mit Benutzer-ID = 500 ODER 1 = 1;

Diese Abfrage gibt Daten aus der Datenbank zurück, da 1 = 1 immer true zurückgibt. Auf diese Weise wird die Bedingung erfüllt. Dies scheint anfällig zu sein. Dies ist für die Organisation sehr gefährlich. Denken Sie zum Beispiel an den Bankensektor. Wo Benutzer ihre Net-Banking-Daten, Passwörter, Kontostandinformationen usw. haben.

Diese Technik ist für den Hacker sehr einfach, Informationen zu erhalten. Durch einfaches Eingeben in die Datenbank.

Hacker erhalten Daten durch einfaches Einfügen von OR und = durch Einfügen in die Datenbank.

Nutzername:

”Oder“ ”=”

Passwort:

”Oder“ ”=”

Auf dem Server wird die Endabfrage korrekt ausgeführt, es tritt kein Fehler auf. Sie können auch 'OR' 1 '=' 1 verwenden, um Daten vom Datenbankserver abzurufen.

Nun stellt sich die Frage, wie wir unsere Datenbanksicherheit aufrechterhalten können.

Und die Antwort ist die Verwendung von SQL-Parametern.

Indem Sie bei der Ausführung der Abfrage zusätzliche Parameter hinzufügen. Diese Angriffe sind durch einige der folgenden Techniken leicht zu verhindern.

Gespeicherte Prozeduren, vorbereitete Anweisungen, reguläre Ausdrücke, Benutzerzugriffsrechte für Datenbankverbindungen, Fehlermeldungen usw. sind die Verhinderungstechniken .

Eine weitere Sache, die wir denken sollten, ist es auch sinnvoll, verschiedene Datenbanken für verschiedene Zwecke in der Anwendung zu haben.

Ein weiteres Problem ist das Testen. Das Testen der Datenbank auf die verschiedenen Bedingungen ist auch der beste Weg.

Fazit

Das Erstellen einer Datenbank ist ein entscheidender Teil. Das Risiko, Informationen in die Hand von Hackern zu bekommen, ist für keine Anwendung gut. Während wir die Datenbank erstellen, müssen wir einige einfache Schritte befolgen, um diesen Verlust zu verhindern. Ein passender Ausdruck dafür lautet „Vorbeugen ist besser als heilen“.

Empfohlene Artikel

Dies war eine Anleitung zu Was ist SQL Injection. Hier diskutieren wir das Verhalten, wie es funktioniert und die Arten der SQL-Injektion. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Was ist SQL Server?
  2. Was ist SQL? Abfragesprache erklärt
  3. Was ist SQL Developer?
  4. SQL Commands Update
  5. Reguläre Ausdrücke in Java