Die SQL-Injection ist einer der häufigsten Web-Angriffsmechanismen, die von Angreifern verwendet werden, um Aufzeichnungen und vertrauliche Aufzeichnungen von Geschäfts- oder Social-Media-Plattformen zu stehlen. Während SQL Injection alle Informationen einer Anwendung verlieren kann, die eine SQL-Datenbank verwendet, wird es am häufigsten verwendet, um Web-Websites anzugreifen. SQL Injection ist eine Code-Injection-Technik, mit der Hacker schädliche SQL-Anweisungen in Eingabeabfragen einfügen können, um sie über die zugrunde liegende SQL-Datenbank auszuführen. Dieses Verfahren wird durch eine ungeeignete Codierung von geneigten Bahnpaketen durchführbar gemacht. Die SQL-Injektion steigt aufgrund des tatsächlichen Zugriffs auf Eingabefelder, die für Benutzer verfügbar gemacht werden, um alle schlechten Arten von SQL-Anweisungen einzugeben, um sie zu durchlaufen und Abfragen direkt in die Datenbank einzufügen.
Lassen Sie uns diese URL in Ihren Browser eingeben und die Bonuskategorien aus der Tabelle abrufen:
https://insecure-website.com/products?category=Bonus
Dies veranlasst die Anwendung, eine SQL-Frage zu stellen, um Informationen zu den relevanten Waren aus der Datenbank wie folgt abzurufen:
WÄHLEN AUS Fan-Shop WO Kategorie = „Bonus“ UND freigegeben = 1
Diese SQL-Abfrage fordert die Datenbank auf, Folgendes zurückzugeben:
Die Software setzt keine Verteidigung gegen SQL-Injection-Angriffe in Kraft, sodass ein Angreifer einen Angriff wie den folgenden zusammenstellen kann:
https://insecure-website.com/products?category=Bonus’ – –
Das Ergebnis der obigen Abfrage ist:
SELECT * FROM products WHERE category = ‘Bonus’–‘ UND freigegeben = 1
Die Schlüsselkomponente hier ist, dass die Doppelstrich-Reihe — ein Bemerkungsindikator in SQL ist und bedeutet, dass der Rest der Frage als Kommentar interpretiert wird. Dadurch wird der Rest der Abfrage erfolgreich entfernt, sodass sie nicht mehr UND gestartet = 1 enthält. Auf diese Weise werden alle Produkte angezeigt, z. B. unveröffentlichte Produkte.
Eine andere Methode für die SQL-Injection:
https://insecure-website.com/products?category=Bonus’+OR+1=1–
Das Ergebnis:
SELECT * FROM products WHERE category = ‘Bonus’ OR 1=1–‘ AND released = 1
Mit der obigen Abfrage können Sie die Datenbank leicht angreifen.
Umgehen Sie das Anmeldekonto mit der folgenden Abfrage:
WÄHLEN AUS Benutzer WO Benutzername = „john“ UND Passwort = „johnwilliam“
Protokoll des Angreifers mit dem Benutzernamen ohne Passwort, in der SQL-Abfrage verwenden Sie – – doppeltes Bindestrich-Passwort und kommentieren Sie es in der Where-Klausel. Senden Sie beispielsweise eine Abfrage mit dem Benutzernamen Administrator und einem leeren Kennwortfeld. Abfrage ist:
SELECT * FROM users WHERE username = ‘administrator’ – – ‘ AND password =
Sie sind auch viele Methoden für die SQL-Injection.
Ein einfacher PHP-Code für die SQL-Injection auf der Anmeldeseite ist unten angegeben:
$uname = $_POST [‘ uname‘ ] ;
$Passwort = $_POST [‘Passwort‘] ;
$query = ‘ Benutzername auswählen, von Benutzern übergeben, wobei Benutzername = ‘ $uname ‘ und Passwort = ‘ $passwrd
$ergebnis = mysql_query ( $abfrage ) ;
$zeilen = mysql_fetch_array ( $ergebnis );
Wenn ($rows)
{
echo „Sie haben sich erfolgreich angemeldet“;
create_session( ) ;
}
anders {
echo „Viel Glück beim nächsten Mal“;
}