Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-1094 — Es un fallo de saneamiento de entrada provocado por una discrepancia de codificación, que permite que una entrada manipulada evite los filtros. Si un servidor es vulnerable, un atacante puede inyectar SQL malicioso que el backend ejecuta. | Kitploit
Herramientas/GitHubGitHub/aninfosec/cve-2025-1094
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de PayloadsSeguridad de Bases de DatosLabs y Práctica
GitHubaninfosec/cve-2025-1094

CVE-2025-1094

Es un fallo de saneamiento de entrada provocado por una discrepancia de codificación, que permite que una entrada manipulada evite los filtros. Si un servidor es vulnerable, un atacante puede inyectar SQL malicioso que el backend ejecuta.

1hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

#He escrito este exploit con referencia al PoC disponible en CVE-2025-1094

CVE‑2025‑1094 | Vulnerabilidad de saneamiento de entradas en PostgreSQL

Resumen

CVE‑2025‑1094 es una vulnerabilidad de saneamiento de entradas en las funciones de escape libpq de PostgreSQL y en la herramienta interactiva psql. Se debe al manejo incorrecto de codificaciones multibyte cuando la codificación del cliente está configurada como BIG5. Bajo ciertas condiciones, esto puede provocar un manejo inadecuado de los caracteres de escape, lo que permite a los atacantes eludir los límites previstos de las consultas.

Esta vulnerabilidad fue descubierta por Rapid7 durante el análisis de CVE‑2024‑12356, un problema independiente en los dispositivos BeyondTrust. El comportamiento de PostgreSQL fue explotado como parte de una vulnerabilidad encadenada más amplia para influir aún más en el comportamiento del backend.

Cómo funciona

Cuando un servidor web o una aplicación pasa directamente la entrada del usuario a consultas SQL ejecutadas a través de psql, y client_encoding está configurado como BIG5, una entrada especialmente diseñada puede terminar una sentencia SQL de forma anticipada y añadir SQL malicioso.

Esto permite operaciones adicionales, como la lectura de archivos locales (por ejemplo, /etc/passwd) a través de lo_export, pg_read_file u otras funciones similares de PostgreSQL.

Esta no es una vulnerabilidad de ejecución remota de código (RCE) en PostgreSQL por defecto. Más bien, es un uso indebido de las API de cliente de PostgreSQL que, cuando no se filtran o escapan adecuadamente, puede ser explotado para filtrar contenido sensible de archivos o potencialmente ejecutar SQL peligroso.

Impacto

  • Permite el acceso de lectura de archivos desde el servidor PostgreSQL si está configurado de forma insegura.
  • Permite a los atacantes con credenciales válidas explotar COPY TO, pg_read_file o lo_export cuando se combinan con inyección SQL en aplicaciones cliente.
  • Los exploits solo son efectivos cuando la codificación del cliente es BIG5 y la entrada no está debidamente saneada.

Condiciones necesarias para la explotación

  • El atacante tiene credenciales válidas de PostgreSQL (contexto autenticado) o acceso a un servidor web que envía entradas directamente al servidor PostgreSQL.
  • El backend SQL es PostgreSQL y utiliza una versión vulnerable (anterior a las versiones parcheadas de junio de 2025).
  • La aplicación pasa directamente la entrada sin sanear a SQL.
  • El cliente PostgreSQL está configurado con client_encoding=BIG5.

Demostración del 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()

##✅ ¿Qué hace este Exploit.py?

Establece PGCLIENTENCODING=BIG5 en el entorno (condición desencadenante).

Construye una carga útil de inyección SQL para salir de una consulta e insertar un nuevo comando COPY TO PROGRAM.

Envía la carga útil mediante una petición GET al servidor web vulnerable (/search?q=...).

Si el backend utiliza psql y la entrada no está saneada, el COPY TO PROGRAM se ejecuta y escribe el resultado o abre una shell.

⚠️ El reverse shell solo tendrá éxito si el servidor:

root@kitploit:~
Ejecuta SQL usando psql (no controladores de base de datos parametrizados)

Permite COPY TO PROGRAM (requiere superusuario)

Tiene conectividad saliente hacia el atacante

#El script de Python envía una carga útil especialmente diseñada a un servidor web vulnerable que pasa la entrada directamente a un proceso psql de PostgreSQL con codificación BIG5: Pasos para usar:

Inicia un listener en la terminal:

nc -lvnp 4444

Edita el script del exploit:

Establece TARGET_URL con la IP o el dominio del servidor objetivo. Confirma que ENDPOINT coincide con la ruta (por ejemplo, /search). Ajusta REVERSE_IP y REVERSE_PORT para que coincidan con tu máquina de ataque.

Ejecuta el script en una terminal diferente:

python3 exploit.py

Resultado: Si tiene éxito, recibirás una conexión en tu listener. Si no, intenta leer archivos (por ejemplo, /etc/passwd) usando cargas útiles de pg_read_file en su lugar.

Entorno de laboratorio

Para probar esto:

  • PostgreSQL 14.x (o versiones vulnerables anteriores).
  • Inicializado con codificación EUC_TW o similar.
  • La capa de aplicación (por ejemplo, Flask) interactúa con PostgreSQL usando psql o SQL dinámico sin escapar.
  • El usuario de PostgreSQL debe tener acceso a funciones como pg_read_file o lo_export.

Mitigaciones

  • Actualiza a versiones parcheadas de PostgreSQL (≥ 17.3, 16.7, 15.11, 14.16, 13.19).
  • Evita client_encoding=BIG5 a menos que sea explícitamente necesario.
  • Nunca pases entrada de usuario sin procesar a contextos de ejecución SQL.
  • Usa sentencias preparadas y bibliotecas de validación de entradas.

Referencias

  • Blog de Rapid7: Análisis técnico
  • Aviso de PostgreSQL: Versión de seguridad de junio de 2025
  • Detalles del CVE: CVE-2025-1094
Descargar herramienta