Error Based SQL Injection: Unterschied zwischen den Versionen

Aus IT-Forensik Wiki
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(12 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
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ück gegeben werden, zu nutze macht.
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.¹) ²)


Diese an den Anwender zurück gegebenen 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.
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.
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.
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 SQL Injection|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³.


Während der Entwicklung einer Applikation sind solche Fehlermeldungen besonders beim Debugging sehr hilfreich und erforderlich. In Produktiv-/Liveumgebungen sollte das Logging von Fehlermeldungen in einen geschützten Bereich (z.B. zentrales Log-Management) oder systemseitig in zugriffsbeschränkte Log-Files protokolliert werden.
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

Aktuelle Version vom 9. Februar 2022, 21:53 Uhr

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