Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-1094-PoC-Postgre-SQLi — Emulação e análise de prova de conceito do CVE-2025-1094, uma vulnerabilidade crítica de injeção SQL no PostgreSQL. Inclui configuração de laboratório baseado em Docker, script de exploração, análise de causa raiz e demonstração passo a passo para testes de segurança e educação. | Kitploit
Ferramentas/GitHubGitHub/ishwardeepp/cve-2025-1094-poc-postgre-sqli
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoSegurança de Banco de DadosLabs e Prática
GitHub
ishwardeepp/cve-2025-1094-poc-postgre-sqli

CVE-2025-1094-PoC-Postgre-SQLi

Emulação e análise de prova de conceito do CVE-2025-1094, uma vulnerabilidade crítica de injeção SQL no PostgreSQL. Inclui configuração de laboratório baseado em Docker, script de exploração, análise de causa raiz e demonstração passo a passo para testes de segurança e educação.

Ver Repositório
6214há 1 anoAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Análise do CVE-2025-1094 e Configuração de Emulação

Este exame detalhado, realizado em 14 de março de 2025, explora o CVE-2025-1094, uma vulnerabilidade hipotética de injeção SQL de alta gravidade no PostgreSQL, com base na configuração de emulação fornecida e na execução da prova de conceito (PoC). A análise abrange a introdução da vulnerabilidade, a causa raiz, as contribuições dos arquivos, as etapas da PoC e as mitigações, incorporando todos os detalhes intrincados do processo de emulação.

Introdução à Vulnerabilidade

O CVE-2025-1094 é descrito como uma falha crítica de injeção SQL no PostgreSQL, afetando versões anteriores a 17.3, 16.7, 15.11, 14.16 e 13.19, com uma pontuação base CVSS 3.1 de 8,1, indicando impactos significativos na confidencialidade, integridade e disponibilidade. Ele permite que atacantes acessem dados sensíveis ou executem código remoto (RCE), tendo sido explorado em violações reais, como o incidente da BeyondTrust que afetou 17 clientes empresariais, reportado no BleepingComputer, e a violação do Departamento do Tesouro dos EUA, detalhada no The Register. A emulação, realizada em 14 de março de 2025, utilizou uma configuração Docker com server_encoding=EUC_TW e client_encoding=BIG5, cruciais para acionar a exploração. A PoC envolveu injetar um bloco DO para criar um objeto grande, ler /etc/passwd via , escrevê-lo no objeto grande com e exportá-lo para usando , confirmando o papel da incompatibilidade de codificação em permitir o acesso não autorizado a arquivos.

pg_read_file
lo_put
/tmp/payload
lo_export

Análise da Causa Raiz

A causa raiz é classificada sob CWE-149: Neutralização Incorreta da Sintaxe de Citação, envolvendo manipulação inadequada nas funções libpq do PostgreSQL — PQescapeLiteral(), PQescapeIdentifier(), PQescapeString() e PQescapeStringConn() — que falham em neutralizar a sintaxe de citação quando os resultados são usados para construir entrada para a ferramenta de linha de comando psql. Isso é agravado quando client_encoding está definido como BIG5 e server_encoding como EUC_TW, como visto em nossa configuração, permitindo injeção SQL. A emulação exigiu EUC_TW e zh_TW.EUC_TW para criar a incompatibilidade, com problemas como a falta de suporte a EUC_TW pelo psycopg2 sendo resolvidos conectando com UTF8 e depois alternando para BIG5. O sucesso da exploração dependeu da execução de SQL bruto via subprocess.run(["psql", ...]), contornando a manipulação segura de consultas, conforme detalhado nos logs.

Explicações e Contribuições dos Arquivos

Cada arquivo na configuração desempenha um papel crítico na emulação do CVE-2025-1094. Abaixo está uma análise detalhada em formato de tabela:

Tabela: Resumo das Contribuições dos Arquivos

ArquivoO que fazContribuição para a PoCPor que é necessário
exploit.pyEnvia uma requisição POST com um bloco DO para criar e exportar um objeto grande, lendo /etc/passwd.Aciona a injeção SQL, explora a incompatibilidade de codificação para executar comandos SQL arbitrários.Permite a execução da exploração, crítico para o impacto da PoC.
app.pyAplicativo Flask que expõe /vuln-endpoint, executa SQL bruto via psql.Fornece endpoint vulnerável para a exploração.Ponto de entrada para a exploração, necessário para demonstração da vulnerabilidade.
init.sqlCria tabela de teste com id VARCHAR(255) para entradas de string.Configura esquema para injeção, garante execução do payload sem erros de tipo.Configuração do banco de dados para a exploração, essencial para injeção SQL.
DockerfileConstrói contêiner do aplicativo Flask com dependências necessárias.Cria serviço de aplicativo isolado para implantação do endpoint.Implanta o aplicativo vulnerável, crítico para reprodutibilidade da PoC.
docker-compose.ymlDefine e vincula serviços db e app com configurações específicas.Orquestra a configuração, garante incompatibilidade de codificação e dependências de serviço.Vincula serviços, essencial para configuração do ambiente e isolamento.
Dockerfile.dbConstrói contêiner PostgreSQL com codificação EUC_TW.Cria banco de dados vulnerável com a codificação necessária.Configura banco de dados com codificação necessária, crítico para acionar a vulnerabilidade.

Etapas da Prova de Conceito

A PoC, executada em 14 de março de 2025, demonstra o impacto da exploração através das seguintes etapas, cada uma com explicação detalhada:

  1. sudo docker compose up --build

    • O que faz: Constrói e inicia os serviços Docker Compose (db e app), criando contêineres com imagens atualizadas se necessário, e os vincula na rede postgre_default. Garante que o ambiente vulnerável esteja configurado, com db usando codificação EUC_TW e app expondo /vuln-endpoint na porta 5000, crucial para a incompatibilidade de codificação e acesso ao endpoint da exploração.
    • Por que é necessário: Configura o ambiente necessário para o funcionamento da exploração, garantindo que todos os serviços estejam em execução e configurados corretamente.
  2. curl -X POST http://localhost:5000/vuln-endpoint -d "input=test"

    • O que faz: Envia uma requisição POST para o endpoint do aplicativo Flask com input=test, verificando conectividade e funcionalidade básica, esperando "Executed". Confirma que o aplicativo está em execução e pode conectar ao banco de dados, garantindo que a configuração esteja pronta para a exploração.
    • Por que é necessário: Garante que o endpoint esteja acessível e funcional antes de prosseguir com a exploração, alinhando-se com as etapas de verificação da PoC.
    • Verificando Configuração
  3. python3 cve-2025-1094-exploit.py

    • O que faz: Executa o script de exploração, enviando uma requisição POST com um bloco DO para criar um objeto grande, escrever /etc/passwd nele e exportar para /tmp/payload, imprimindo o status da execução. Aciona a injeção SQL, explorando a vulnerabilidade para ler /etc/passwd, crítico para demonstrar o impacto do CVE-2025-1094, como visto nos logs com exportação bem-sucedida do arquivo.
    • Por que é necessário: Executa a exploração central, mostrando como atacantes podem acessar dados sensíveis, alinhando-se ao objetivo da PoC de emular ataques do mundo real.
    • Executando Exploração
  4. sudo docker ps

    • O que faz: Lista os contêineres em execução, verificando se postgre-app-1 e postgre-db-1 estão ativos. Confirma a configuração antes de executar a exploração, garantindo que ambos os serviços estejam ativos, crítico para a confiabilidade da PoC. Fornece ao usuário o ID do contêiner, necessário nos comandos subsequentes.
    • Por que é necessário: Garante que todos os serviços necessários estejam em execução, fornecendo um ponto de verificação antes de etapas adicionais de exploração.
  5. sudo docker exec -it bash -c "LC_ALL=C ls -l /tmp/payload && LC_ALL=C cat /tmp/payload"

    • O que faz: Executa um comando no contêiner postgre-db-1, listando e exibindo /tmp/payload com saída em inglês, verificando o resultado da exploração (deve mostrar /etc/passwd). Confirma que a exploração funcionou verificando o arquivo, garantindo que /tmp/payload contenha dados sensíveis, alinhando-se com a verificação da PoC, e evitando problemas de localidade com LC_ALL=C.
    • Por que é necessário: Verifica o sucesso da exploração verificando a saída, garantindo que os dados sensíveis foram acessados conforme esperado.
    • Validando Exploração
  6. sudo docker exec -it psql -U postgres -d postgres -c "SELECT * FROM test;"

    • O que faz: Executa uma consulta SQL no contêiner do banco de dados, selecionando todos da tabela test, verificando o INSERT da exploração (deve mostrar "Exploit ran with loid ..."). Confirma a modificação no banco de dados pela exploração, garantindo que o bloco DO foi executado, alinhando-se com a verificação da PoC e validando o registro do loid.
    • Por que é necessário: Garante que o banco de dados foi modificado conforme esperado, fornecendo verificação adicional do impacto da exploração.
  7. sudo docker compose down

    • O que faz: Para e remove contêineres, redes e volumes, limpando o ambiente. Garante que os recursos sejam liberados, mantendo a limpeza do sistema, essencial para execução repetível da PoC sem resíduos.
    • Por que é necessário: Limpa após o teste, garantindo que nenhum serviço ou dado residual afete testes futuros, mantendo um ambiente controlado.

Vídeo de Demonstração

Vídeo de Demonstração no Vimeo
Clique para ver a demonstração da PoC no Vimeo.

Mitigações

Para mitigar o CVE-2025-1094, as seguintes medidas são recomendadas, com base nos insights da emulação e nas orientações do setor:

  • Atualizar para Versões Corrigidas: Atualizar para as versões do PostgreSQL 17.3, 16.7, 15.11, 14.16 ou 13.19, disponíveis na Página de Download do PostgreSQL.
  • Validação de Entrada: Validar todas as entradas do usuário quanto à codificação UTF-8 para evitar injeção, conforme aconselhado pelo Blog da Armosec.
  • Restringir Acesso ao psql: Limitar o acesso ao psql apenas a usuários confiáveis, reduzindo a superfície de ataque.
  • Consultas Parametrizadas ou Frameworks ORM: Usar consultas parametrizadas ou frameworks ORM para evitar injeção SQL, aumentando a segurança.
  • Autenticação Multifator (MFA) e Controle de Acesso Baseado em Funções (RBAC): Implementar MFA e RBAC para melhorar o controle de acesso, conforme os Insights da Ox Security.
  • Monitoramento de Logs: Monitorar regularmente os logs em busca de anomalias ou atividades suspeitas para detectar possíveis explorações precocemente.
  • Backups Robustos: Manter backups regulares e robustos do banco de dados para se recuperar de possíveis violações, garantindo a integridade dos dados.
Baixar ferramenta