SQL-Injektion

SQL-Injektion

Hochschule Wismar Fakultät für Ingenieurwissenschaften Bereich Elektrotechnik und Informatik Seminar: Datenbanken II - Forensik in Datenbanken Dozentin: Prof. Dr.-Ing. Antje Raab-Düsterhöft Wintersemester 2020/2021 Ort, Datum der Abgabe: Nördlingen, 07. Feburar 2021 SQL-Injektion Pascal Granzer Adam Kulauzovic BA Forensic Engineering 5. Fachsemester Inhaltsverzeichnis 1. Aufgabenstellung .......................................................................................... 1 Aufgabe 1 ..................................................................................................... 1 Aufgabe 2 ..................................................................................................... 1 Aufgabe 3 ..................................................................................................... 1 2. Vorbereitungen ............................................................................................. 2 Aktualisierung der Gast-Erweiterungen ........................................................ 4 2. SQL-Injektion Beispiele in der Hense-VM .................................................... 5 2.1. MySQL ................................................................................................... 6 Ausspähen von Daten ............................................................................... 6 Veränderung von Daten .......................................................................... 11 Datenbank-Server verändern .................................................................. 15 Zugriff auf das Filesystem ....................................................................... 17 Einschleusen beliebigen Codes .............................................................. 19 2.2. Postgres ............................................................................................... 20 Ausspähen von Daten ............................................................................. 20 Veränderung von Daten .......................................................................... 25 Datenbank-Server verändern .................................................................. 28 Zugriff auf das Filesystem ....................................................................... 30 Einschleusen beliebigen Codes .............................................................. 32 3. Eigene SQL-Injektion Beispiele .................................................................. 34 3.1. Klonen der VM ..................................................................................... 34 3.2. Eigene Datenbank ............................................................................... 35 3.3. Anpassung an die neue Datenbank ..................................................... 36 3.3.1. Datenbankimport Microsoft SQL-Server ........................................ 36 3.3.2. Anpassen der Konfiguration – Microsoft SQL-Server .................... 37 3.3.3. Datenbankimport Postgres ............................................................ 39 3.3.4. Anpassen der Konfiguration – Postgres ........................................ 41 3.4. Ausführen von SQLi-Beispielen ........................................................... 43 3.4.1. Microsoft SQL-Server .................................................................... 43 3.4.2. Postgres ........................................................................................ 50 3.5. Forensische Aufarbeitung .................................................................... 58 3.5.1. Microsoft SQL-Server .................................................................... 60 3.5.2. Postgres ........................................................................................ 64 4. Begriff für das Forensik-Wiki ...................................................................... 66 Datenbankausführungsplan ........................................................................ 66 Literaturverzeichnis ........................................................................................ 68 Abbildungsverzeichnis .................................................................................... 69 1. Aufgabenstellung Gegenstand der im Rahmen des Moduls Datenbanken II: Forensik in Datenbank- managementsystemen zu fertigenden Hausarbeit sind verschiedene Aufgaben- stellungen aus dem Themengebiet SQL-Injektion. Als Vorlage dient hierfür die Bachelor Thesis von Herrn Christian Hense. Aufgabe 1 Inbetriebnahme der von Herrn Hense bereitgestellten virtuellen Maschine (Testumgebung für SQL-Injektion). Nach dem erfolgreichen Start sollen SQL-Injektion-Beispiele aus der Bachelor Thesis von Herrn Hense an zwei Datenbanksystemen innerhalb der VM ange- wendet werden. Aufgabe 2 Zunächst soll eine eigene Datenbank in zwei andere Datenbanksysteme impor- tiert werden. Anschließend erfolgt in diesen Datenbanksystemen die Ausführung von je fünf SQL-Injektion-Beispielen. Die forensische Aufarbeitung der SQL-Injektion-Beispiele zum Nachweis der An- griffe bildet den Abschluss. Aufgabe 3 Erläuterung eines Begriffs aus dem Themengebiet der Datenbank-Forensik auf dem IT-Forensik-Wiki1 der Hochschule Wismar. 1 https://it-forensik.fiw.hs-wismar.de/index.php/Hauptseite Pascal Granzer, Adam Kulauzovic S e i t e | 1 2. Vorbereitungen Die Aufgaben der Hausarbeit wurden mit Hilfe der Hense-VM2 bearbeitet. Es handelt sich um eine VirtualBox-VM. Nach der Installation von VirtualBox auf dem Host (macOS) wurde die Datei SQLi_Testsystem.vbox geöffnet. Abbildung 1: VirtualBox Startansicht Leider brach der Start der VM sofort mit einer Fehlermeldung ab. Bei nachfolgender Recherche zeigte sich, dass die zum Zeitpunkt der Bearbei- tung dieser Hausarbeit aktuelle Version von VirtualBox (6.1.16) nicht mit dem OS des verwendeten Host (macOS Big Sur 11.1) kompatibel ist. 2 Download unter: https://cloud.uni-weimar.de/s/DXdfMRwRNxfd8fn Pascal Granzer, Adam Kulauzovic S e i t e | 2 Wie sich herausstellt, existiert jedoch zur Fehlerbehebung eine noch nicht freige- gebene Test-Version von VirtualBox, Version 6.1.17. Nach deren Installation konnte das SQLi-Testsystem von Herrn Hense ohne Probleme gebootet werden. Abbildung 2: GRUB-Bootloader Abbildung 3: Startansicht nach dem Bootvorgang Pascal Granzer, Adam Kulauzovic S e i t e | 3 Auf der sich automatisch öffnenden Webseite kann über das Menü Projektlinks → Datenbankstatus geprüft werden, ob alle Datenbanksysteme on- line sind und zur Verwendung bereit stehen. Abbildung 4: Datenbankstatus Aktualisierung der Gast-Erweiterungen Herr Hense hat die VM mit der VirtualBox Version 5.2.32 erstellt. Zum korrekten Betrieb mit der Version 6.1.17 ist die Aktualisierung der VirtualBox Gast-Erweite- rungen nötig. Vor dem Einlegen der Gast-Erweiterungs-CD über das Menü3, muss in den Ein- stellungen der ausgeschalteten Maschine ein DVD-Laufwerk hinzugefügt wer- den. Abbildung 5: Neues DVD-Laufwerk zur VM hinzufügen Die Installation der Gasterweiterungen erfolgt über das Terminal: Abbildung 6: Installation der Gasterweiterungen 3 Devices → Insert Guest Additions CD image Pascal Granzer, Adam Kulauzovic S e i t e | 4 2. SQL-Injektion Beispiele in der Hense-VM Im folgenden Kapitel werden SQL-Injektion-Beispiele im Testsystem von Herrn Hense ausgeführt. Die Durchführung der Beispiele wird je nach verwendeter Datenbank wie folgt gegliedert: • Ausspähen von Daten o Ermittlung des Datenbankservers / -version (MySQL, MS SQL, …) o Ermittlung der Datenbankstruktur (Datenbanken, Tabellen, Felder und Inhalte) o Ermittlung von zugangsgeschützten Daten (regulärer Nutzer ist nicht berechtigt) • Veränderung von Daten o Ändern oder Löschen von bestehenden Daten o Neue Daten einfügen o Neue Tabellen erstellen o Existierende Tabellen oder Datenbanken löschen • Datenbank-Server verändern o Änderung von Benutzerrechten o Löschen bestehender Nutzer o Erstellen eines neuen Benutzers • Zugriff auf das Filesystem des Anwendungsservers o Lese- und Schreibzugriff auf das Dateisystem • Einschleusen beliebigen Codes o Ausführen des Codes auf dem System des Datenbankmanage- mentsystems o Ausführen des Codes auf dem System der Anwendung o Ausführen des Codes auf dem aufrufenden Client Zur Ausführung werden hierbei die beiden Datenbanksysteme MySQL und Postgres genutzt. Im weiteren Verlauf dieser Arbeit wird der Begriff SQL-Injektion durch SQLi ab- gekürzt. Pascal Granzer, Adam Kulauzovic S e i t e | 5 2.1. MySQL Entsprechend dem in der VM enthaltenen SQLi-Wiki4 wird für die Übungen mit der MySQL-Datenbank folgende Einsprungadresse verwendet: Abbildung 7: Einsprungadresse MySQL Ergebnis des Aufrufs der Einsprungadresse: Abbildung 8: MySQL – Ausgabe der Einsprungadresse Ausspähen von Daten Da einzelne SQL-Befehle je nach DBMS leicht variieren, muss zunächst festge- stellt werden, welches Datenbanksystem hinter der Webanwendung Verwen- dung findet. Als Orientierungshilfe für SQL-Befehle dient das SQL-Injektion Cheetsheet für MySQL aus dem SQLi-Wiki5. Bestimmung der DBMS-Version Im Falle einer MySQL-Datenbank lautet der Befehl zum Abrufen der Datenbank- version: Select @@version; Diese Abfrage wird nun in die Einsprungadresse integriert: http://www.victim.com/test_sqli_mysql.php?n=Sokrates’ UNION SELECT @@version,1,1,1 -- . 4 http://127.0.0.1/html/dokuwiki/doku.php?id=1_nutzung:2_einsprungadressen 5 http://127.0.0.1/html/dokuwiki/doku.php?id=8_sql_injection_cheat_sheet:2_mysql Pascal Granzer, Adam Kulauzovic S e i t e | 6 In der zweiten Zeile der ersten Spalte erscheint nun die Versionsnummer 5.5.60-log. Abbildung 9: MySQL – Ausgabe der installierten MySQL Server Version Laut

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    75 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us