SQL-Injection
Total Page:16
File Type:pdf, Size:1020Kb
SQL-Injection Datenbanken II – Forensik in Datenbankmanagementsystemen Bachelor Fernstudium IT-Forensik Inhalt Einleitung .............................................................................................................................. 4 Zusatzbemerkung .................................................................................................................. 4 1.1 Vorbereitung ................................................................................................................ 5 1.2 Herausforderungen ...................................................................................................... 5 1.3 Installation und Einrichtung der VM .............................................................................. 5 1.4 SQL-Injection ..............................................................................................................10 2. Teil 1 – Praktische Anwendung anhand der Bachelor-Thesis Beispiele ............................11 2.1 Untersuchte Datenbankmanagementsysteme .............................................................11 2.2 Datenbankversion auslesen ........................................................................................11 2.2.1 MSSQL .................................................................................................................11 2.2.2 PostgreSQL ..........................................................................................................12 2.3 Ausspähen von Daten .................................................................................................12 2.3.1 MSSQL .................................................................................................................12 2.3.2 PostgreSQL ..........................................................................................................14 2.4 Verändern von Daten ..................................................................................................16 2.4.1 MSSQL .................................................................................................................16 2.4.2 PostgreSQL ..........................................................................................................20 2.5 Datenbankserver verändern ........................................................................................21 2.5.1 MSSQL .................................................................................................................21 2.5.2 PostgreSQL ..........................................................................................................23 2.6 Zugriff auf das Filesystem ...........................................................................................25 2.6.1 MSSQL .................................................................................................................25 2.6.2 PostgreSQL ..........................................................................................................26 2.7 Einschleusen von beliebigem Code ............................................................................27 2.7.1 MSSQL .................................................................................................................27 2.7.2 PostgreSQL ..........................................................................................................27 3. Teil 2 – Erkennen von Angriffen durch SQL-Injection .......................................................29 3.1 Untersuchte Datenbankmanagementsysteme .............................................................29 3.2 Datenbank einpflegen .................................................................................................29 3.2.1 MySQL .................................................................................................................29 3.2.2 Oracle ...................................................................................................................30 3.3 Frontend anpassen .....................................................................................................32 3.3.1 MySQL .................................................................................................................33 3.3.2 Oracle ...................................................................................................................35 3.4 Datenbankversion auslesen ........................................................................................36 3.4.1 MySQL .................................................................................................................36 3.4.2 Oracle ...................................................................................................................36 2 3.5 Ausspähen von Daten .................................................................................................37 3.5.1 MySQL .................................................................................................................37 3.5.2 Oracle ...................................................................................................................38 3.6 Verändern von Daten ..................................................................................................40 3.6.1 MySQL .................................................................................................................40 3.6.2 Oracle ...................................................................................................................41 3.7 Datenbankserver verändern ........................................................................................42 3.7.1 MySQL .................................................................................................................42 3.7.2 Oracle ...................................................................................................................43 3.8 Zugriff auf das Filesystem ...........................................................................................43 3.8.1 MySQL .................................................................................................................43 3.8.2 Oracle ...................................................................................................................43 3.9 Einschleusen beliebigen Codes ..................................................................................44 3.9.1 MySQL .................................................................................................................44 3.9.2 Oracle ...................................................................................................................44 4. Erkennen und Nachvollziehen von SQL-Injection .............................................................45 4.1 Webserverprotokolle ...................................................................................................45 4.2 Datenbankausführungspläne ......................................................................................45 4.2.1 MySQL .................................................................................................................45 4.2.2 Oracle ...................................................................................................................47 4.3 Transkationsprotokolle ................................................................................................50 4.3.1 MySQL .................................................................................................................50 4.3.2 Oracle ...................................................................................................................54 5. Zusammenfassung ...........................................................................................................54 6. Wiki-Eintrag ......................................................................................................................54 Payload .............................................................................................................................54 Quellen .................................................................................................................................55 3 Einleitung Diese Ausarbeitung befasst sich mit der praktischen Anwendung von SQL-Injections in unterschiedlichen Datenbankmanagementsystemen (DBMS). Das Vorgehen wird dokumentiert, wenn nötig erläutert und mit Screenshots gestützt. Die Ausarbeitung fokussiert sich lediglich auf die Dokumentation der Vorgehensweise wie SQL-Injections durchgeführt werden können. Basiswissen zu DBMS und Webentwicklung sind somit vorausgesetzt. Grundlage für die Ausarbeitung, bzw. Dokumentation ist die Bachelor-Thesis von Herrn Christian Hense aus August 2019. Im ersten Teil werden vorab zwei Datenbanksysteme gewählt, anhand derer die von Herrn Hense dargelegten Beispiele für SQL-Injection in Datenbanksystemen praktisch durchgeführt und entsprechend dokumentiert werden. Im zweiten Teil werden wieder zwei Datenbanksysteme (DBMS) gewählt und dort jeweils eine eigene Datenbank eingepflegt. Hieran sollen wiederum Beispiele für SQL-Injections durchgeführt und anschließend anhand der verschiedenen Artefakte nachvollzogen werden. Der gesamte Vorgang wird ebenfalls dokumentiert. Zusatzbemerkung Die Ausarbeitung orientiert sich nicht an der Vorgabe zur Verfassung wissenschaftlicher Arbeiten und ist demnach nicht als solche zu werten. Dennoch wurde nicht darauf verzichtet, neben den Screenshots Eingangs einen Satz zur Erläuterung anzugeben und/oder einige Fachbegriffe kurz zu erläutern. 4 1.1 Vorbereitung Um sich mit der Materie