Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
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
Herramientas/GitHubGitHub/ishwardeepp/cve-2025-1094-poc-postgre-sqli
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónSeguridad de Bases de DatosLabs y Práctica
GitHubishwardeepp/cve-2025-1094-poc-postgre-sqli

CVE-2025-1094-PoC-Postgre-SQLi

Ver Repositorio
6220hace 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 →

Acerca de

Prueba de concepto de emulación y análisis de CVE-2025-1094, una vulnerabilidad crítica de inyección SQL en PostgreSQL. Incluye configuración del laboratorio basada en Docker, script de explotación, análisis de causa raíz y demostración paso a paso para pruebas de seguridad y educación.

Compartir

Análisis de CVE-2025-1094 y Configuración de Emulación

Este examen detallado, realizado el 14 de marzo de 2025, explora CVE-2025-1094, una hipotética vulnerabilidad de inyección SQL de alta gravedad en PostgreSQL, basada en la configuración de emulación proporcionada y la ejecución de la prueba de concepto (PoC). El análisis cubre la introducción de la vulnerabilidad, la causa raíz, las contribuciones de los archivos, los pasos de la PoC y las mitigaciones, incorporando todos los detalles intrincados del proceso de emulación.

Introducción a la Vulnerabilidad

CVE-2025-1094 se describe como una falla crítica de inyección SQL en PostgreSQL, que afecta a las versiones anteriores a 17.3, 16.7, 15.11, 14.16 y 13.19, con una puntuación base CVSS 3.1 de 8.1, lo que indica impactos significativos en la confidencialidad, integridad y disponibilidad. Permite a los atacantes acceder a datos sensibles o ejecutar código remoto (RCE), y ha sido explotado en brechas del mundo real, como el incidente de BeyondTrust que afectó a 17 clientes empresariales, reportado en BleepingComputer, y la brecha del Departamento del Tesoro de EE.UU., detallada en The Register. La emulación, realizada el 14 de marzo de 2025, utilizó una configuración Docker con server_encoding=EUC_TW y client_encoding=BIG5, crucial para desencadenar el exploit. La PoC implicó inyectar un bloque DO para crear un objeto grande, leer /etc/passwd mediante pg_read_file, escribirlo en el objeto grande con lo_put, y exportarlo a /tmp/payload usando lo_export, confirmando el papel de la discordancia de codificación para permitir el acceso no autorizado a archivos.

Análisis de Causa Raíz

La causa raíz se clasifica bajo CWE-149: Neutralización Inadecuada de Sintaxis de Citas, que implica un manejo inadecuado en las funciones libpq de PostgreSQL — PQescapeLiteral(), PQescapeIdentifier(), PQescapeString() y PQescapeStringConn() — que no neutralizan la sintaxis de citas cuando los resultados se usan para construir la entrada para la herramienta de línea de comandos psql. Esto se agrava cuando client_encoding está configurado como BIG5 y server_encoding como EUC_TW, como se vio en nuestra configuración, lo que permite la inyección SQL. La emulación requirió EUC_TW y zh_TW.EUC_TW para crear la discordancia, con problemas como la falta de soporte de EUC_TW en psycopg2 resueltos conectándose con UTF8 y luego cambiando a BIG5. El éxito del exploit dependió de ejecutar SQL sin procesar a través de subprocess.run(["psql", ...]), evitando el manejo seguro de consultas, como se detalla en los registros.

Explicaciones de Archivos y Contribuciones

Cada archivo en la configuración juega un papel crítico en la emulación de CVE-2025-1094. A continuación, se presenta un desglose detallado en forma de tabla:

Tabla: Resumen de Contribuciones de Archivos

ArchivoQué HaceContribución a PoCPor Qué Es Necesario
exploit.pyEnvía una solicitud POST con un bloque DO para crear y exportar un objeto grande, leyendo /etc/passwd.Desencadena la inyección SQL, explota la discordancia de codificación para ejecutar comandos SQL arbitrarios.Permite la ejecución del exploit, crítico para el impacto de la PoC.
app.pyAplicación Flask que expone /vuln-endpoint, ejecuta SQL sin procesar a través de psql.Proporciona el endpoint vulnerable para el exploit.Punto de entrada para el exploit, necesario para la demostración de la vulnerabilidad.
init.sqlCrea una tabla de prueba con id VARCHAR(255) para entradas de cadena.Configura el esquema para la inyección, asegura la ejecución del payload sin errores de tipo.Configuración de la base de datos para el exploit, esencial para la inyección SQL.
DockerfileConstruye el contenedor de la aplicación Flask con las dependencias necesarias.Crea un servicio de aplicación aislado para la implementación del endpoint.Despliega la aplicación vulnerable, crítico para la reproducibilidad de la PoC.
docker-compose.ymlDefine y vincula los servicios db y app con configuraciones específicas.Orquesta la configuración, asegura la discordancia de codificación y las dependencias del servicio.Vincula servicios, esencial para la configuración del entorno y el aislamiento.
Dockerfile.dbConstruye el contenedor PostgreSQL con codificación EUC_TW.Crea la base de datos vulnerable con la codificación requerida.Configura la base de datos con la codificación requerida, crítico para el desencadenamiento de la vulnerabilidad.

Pasos de la Prueba de Concepto

La PoC, ejecutada el 14 de marzo de 2025, demuestra el impacto del exploit a través de los siguientes pasos, cada uno con una explicación detallada:

  1. sudo docker compose up --build

    • Qué Hace: Construye e inicia los servicios de Docker Compose (db y app), creando contenedores con imágenes actualizadas si es necesario, y los vincula en la red postgre_default. Asegura que el entorno vulnerable esté configurado, con db usando codificación EUC_TW y app exponiendo /vuln-endpoint en el puerto 5000, crucial para la discordancia de codificación y el acceso al endpoint del exploit.
    • Por Qué Es Necesario: Configura el entorno necesario para que el exploit funcione, asegurando que todos los servicios estén en ejecución y configurados correctamente.
  2. curl -X POST http://localhost:5000/vuln-endpoint -d "input=test"

    • Qué Hace: Envía una solicitud POST al endpoint de la aplicación Flask con input=test, verificando la conectividad y la funcionalidad básica, esperando "Executed". Confirma que la aplicación se está ejecutando y puede conectarse a la base de datos, asegurando que la configuración esté lista para el exploit.
    • Por Qué Es Necesario: Asegura que el endpoint sea accesible y funcional antes de proceder con el exploit, alineándose con los pasos de verificación de la PoC.
    • Verificación de Configuración
  3. python3 cve-2025-1094-exploit.py

    • Qué Hace: Ejecuta el script de exploit, enviando una solicitud POST con un bloque DO para crear un objeto grande, escribir /etc/passwd en él y exportarlo a /tmp/payload, imprimiendo el estado de ejecución. Desencadena la inyección SQL, explotando la vulnerabilidad para leer /etc/passwd, crítico para demostrar el impacto de CVE-2025-1094, como se ve en los registros con la exportación exitosa del archivo.
    • Por Qué Es Necesario: Ejecuta el exploit central, mostrando cómo los atacantes pueden acceder a datos sensibles, alineándose con el objetivo de la PoC de emular ataques del mundo real.
    • Ejecutando Exploit
Descargar herramienta