Testen auf injizierbare SQL-Abfragen

Bei SQL-Injection-Angriffen wird eine SQL-Abfrage über die vom Client an die Anwendung gesendeten Eingaben eingefügt oder "injiziert". Ein erfolgreicher Angriff dieser Art kann dazu beitragen, sensible Informationen aus der Datenbank zu lesen, zu ändern oder zu löschen. In den extremsten Fällen ermöglicht es die Ausgabe von Systembefehlen.


Im Folgenden finden Sie einen gefährlichen Codeausschnitt, mit dem sie einen SQL-Injection-Angriff durchführen können:

SELECT * FROM users WHERE name = userName;

Die Variable "userName"wird vom Benutzer abgerufen. Wenn ein Angreifer den Ausdruck 'OR' 1 '='1' als Benutzernamen angibt, wird der richtige Benutzername erzwungen, da der Ausdruck "1" = "1" immer wahr ist.


Sie können ein Tool namens sqlmapverwenden, um die Anfälligkeit von sql injection zu testen, das automatisch die Möglichkeit zum Injizieren von SQL-Abfragen finden und nutzen kann. Es unterstützt sechs sql injection-Techniken:logikbasierte, blinde, Fehler, UNION-Abfragen, kumulative Abfragen und OOB-Angriffe. Ermöglicht den Angriff auf MySQL-, Oracle-, PostgreSQL-, Microsoft SQL Server-, Microsoft Access-, IBM DB2-, SQLite-, Firebird-, Sybase-, SAP MaxDB-, HSQLDB- und Informix-Datenbanken.


Die folgende Abbildung zeigt ein Beispiel für die Verwendung von sqlmap, bei dem mit hilfe von heuristischen Tests festgestellt wurde, dass der ID-Parameter in der getesteten Abfrage anfällig für angriffe vom Typ sql injectionsein kann.

Beispiel für die Verwendung von sqlmap

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach (zero spamu!).
Dodatkowo otrzymasz, moją prywatną listę 15 najbardziej przydatnych narzędzi (wraz z krótkim opisem), których używam przy testach penetracyjnych.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

Speichere in deinen Favoriten diesen permalink.

Podziel się swoją opinią na temat artykułu