Sicherheitstests - Injektion

Die Injektionstechnik besteht aus dem Injizieren einer SQL-Abfrage oder eines Befehls unter Verwendung der Eingabefelder der Anwendung.

Webanwendung - Injektion

Eine erfolgreiche SQL-Injection kann vertrauliche Daten aus der Datenbank lesen, ändern und auch Daten aus einer Datenbank löschen. Außerdem kann der Hacker administrative Vorgänge für die Datenbank ausführen, z. B. das Herunterfahren des DBMS / Löschen von Datenbanken.

Lassen Sie uns anhand eines einfachen Diagramms die Bedrohungsagenten, Angriffsmethoden, Sicherheitsschwächen, technischen Auswirkungen und geschäftlichen Auswirkungen dieses Fehlers verstehen.

Beispiele

Die Anwendung verwendet nicht vertrauenswürdige Daten bei der Erstellung des folgenden anfälligen SQL-Aufrufs:

String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";

Hands On

Step 1 - Navigieren Sie wie unten gezeigt zum Bereich SQL Injection der Anwendung.

Step 2- Wie in der Übung angegeben, verwenden wir String SQL Injection, um die Authentifizierung zu umgehen. Verwenden Sie SQL Injection, um sich als Boss ('Neville') anzumelden, ohne das richtige Passwort zu verwenden. Stellen Sie sicher, dass das Profil von Neville angezeigt werden kann und alle Funktionen verfügbar sind (einschließlich Suchen, Erstellen und Löschen).

Step 3 - Wir injizieren eine SQL so, dass wir das Passwort umgehen können, indem wir den Parameter als 'a' = 'a' oder 1 = 1 senden

Step 4 - Nach der Ausnutzung können wir uns wie unten gezeigt als Neville anmelden, der der Administrator ist.

Verhindern von SQL Injection

Es gibt viele Möglichkeiten, die SQL-Injection zu verhindern. Wenn Entwickler den Code schreiben, sollten sie sicherstellen, dass sie mit Sonderzeichen entsprechend umgehen. Es gibt Spickzettel / Präventionstechniken von OWASP, die definitiv ein Leitfaden für Entwickler sind.

  • Verwenden parametrisierter Abfragen
  • Escape alle vom Benutzer bereitgestellten Eingaben
  • Aktivieren Sie die geringste Berechtigung für die Datenbank für die Endbenutzer