Error Based SQL Injection

Aus IT-Forensik Wiki
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.

Bei der Error Based SQL Injection (auf deutsch: fehlerbasierte SQL Injektion) handelt es sich um eine Variante der In-Band SQL Injection. Sie gilt als eine Sonderform der SQL Injection, da sie sich Fehlermeldungen (z.B. Stacktraces oder Error Messages), die ungeprüft bzw. ungefiltert durch eine Applikation, Datenbank und/oder Webserver an den User zurückgegeben werden, zu nutze macht.¹) ²)

Durch das Senden von ungültigen Eingaben an die Datenbank werden Fehlermeldungen erzwungen.

Diese an den Anwender zurückgegebenen Fehlermeldungen enthalten dann Informationen aus/über das zugrundeliegende DBMS, den Aufbau bzw. die Struktur der Datenbank, das Filesystem oder die Middleware/Applikation, die ein Angreifer auswertet und für seinen Angriff benötigt.

Die Informationen reichen von einzelnen Tabellen/Spaltennamen bis hin zu vollständigen Zugangsdaten der Datenbank. Unter Umständen reicht ein einzelner dieser Angriffe, um eine komplette Datenbank zu listen oder im Falle des Erlangens von administrativen Zugangsdaten zur Übernahme der Datenbank.

Während der Entwicklung einer Applikation sind solche Fehlermeldungen - besonders beim Debugging - sehr hilfreich und erforderlich. In Produktiv-/Liveumgebungen sollte die Ausgabe von Datenbank-Fehlermeldungen deaktiviert werden oder das Logging von Fehlermeldungen in einen geschützten Bereich (z.B. zentrales Log-Management) bzw. systemseitig in zugriffsbeschränkte Log-Files protokolliert werden.

Die Error Based SQL Injection ist neben der Blind- und Union SQL Injection eine der am häufigsten verwendeten Angriffsmöglichkeiten auf Datenbanksysteme.

Wird eine Abfrage mit zwei verschachtelten Queries (z.B. SELECT + GROUP BY über spezifische Spalte) abgesetzt, um an Fehlermeldungen zu gelangen, spricht man in diesem Fall auch häufig von einer sogenannten Double Query SQL Injection statt einer Error Based SQL Injection³.

Quellen:

        ¹) Buch von Justin Clarke „SQL-Injektion“ (Clarke, Justin. SQL Hacking . München, Germany: Franzis Verlag 
           GmbH,2016. 978-3-645-60466-6
        ²) https://medium.com/@hninja049/example-of-a-error-based-sql-injection-dce72530271c
        ³) https://skytale.academy/it-sicherheit-wiki.html