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-PoC-Postgre-SQLi — 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. | Kitploit
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
GitHub
ishwardeepp/cve-2025-1094-poc-postgre-sqli

CVE-2025-1094-PoC-Postgre-SQLi

Ver Repositorio
6214hace 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 , escribirlo en el objeto grande con , y exportarlo a usando , confirmando el papel de la discordancia de codificación para permitir el acceso no autorizado a archivos.

pg_read_file
lo_put
/tmp/payload
lo_export

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
  4. sudo docker ps

    • Qué Hace: Lista los contenedores en ejecución, verificando que postgre-app-1 y postgre-db-1 estén activos. Confirma la configuración antes de ejecutar el exploit, asegurando que ambos servicios estén activos, crítico para la fiabilidad de la PoC. Proporciona al usuario el ID del contenedor, necesario en comandos posteriores.
    • Por Qué Es Necesario: Asegura que todos los servicios necesarios estén en ejecución, proporcionando un punto de control antes de pasos adicionales de explotación.
  5. sudo docker exec -it bash -c "LC_ALL=C ls -l /tmp/payload && LC_ALL=C cat /tmp/payload"

    • Qué Hace: Ejecuta un comando en el contenedor postgre-db-1, listando y mostrando /tmp/payload con salida en inglés, verificando el resultado del exploit (debería mostrar /etc/passwd). Confirma que el exploit funcionó al verificar el archivo, asegurando que /tmp/payload contenga datos sensibles, alineándose con la verificación de la PoC, y evitando la distorsión de configuración regional con LC_ALL=C.
    • Por Qué Es Necesario: Verifica el éxito del exploit al revisar la salida, asegurando que se accedió a los datos sensibles como se esperaba.
    • Validando Exploit
  6. sudo docker exec -it psql -U postgres -d postgres -c "SELECT * FROM test;"

    • Qué Hace: Ejecuta una consulta SQL en el contenedor de la base de datos, seleccionando todos los registros de la tabla test, verificando el INSERT del exploit (debería mostrar "Exploit ran with loid ..."). Confirma la modificación de la base de datos por parte del exploit, asegurando que el bloque DO se ejecutó, alineándose con la verificación de la PoC, y validando el registro de loid.
    • Por Qué Es Necesario: Asegura que la base de datos fue modificada como se esperaba, proporcionando una verificación adicional del impacto del exploit.
  7. sudo docker compose down

    • Qué Hace: Detiene y elimina contenedores, redes y volúmenes, limpiando el entorno. Asegura que los recursos se liberen, manteniendo la limpieza del sistema, esencial para una ejecución repetible de la PoC sin residuos.
    • Por Qué Es Necesario: Limpia después de las pruebas, asegurando que no queden servicios o datos residuales que afecten pruebas futuras, manteniendo un entorno controlado.

Video de Demostración

Video de Demostración en Vimeo
Haga clic para ver la demostración de la PoC en Vimeo.

Mitigaciones

Para mitigar CVE-2025-1094, se recomiendan las siguientes medidas, basadas en las perspectivas de la emulación y la guía de la industria:

  • Actualizar a Versiones Parcheadas: Actualizar a las versiones de PostgreSQL 17.3, 16.7, 15.11, 14.16 o 13.19, disponibles en Página de Descarga de PostgreSQL.
  • Validación de Entrada: Validar todas las entradas de usuario para codificación UTF-8 para prevenir la inyección, según lo recomendado por Blog de Armosec.
  • Restringir Acceso a psql: Limitar el acceso a psql solo a usuarios de confianza, reduciendo la superficie de ataque.
  • Consultas Parametrizadas o Frameworks ORM: Usar consultas parametrizadas o frameworks ORM para prevenir la inyección SQL, mejorando la seguridad.
  • Autenticación Multifactor (MFA) y Control de Acceso Basado en Roles (RBAC): Implementar MFA y RBAC para mejorar el control de acceso, según Ox Security Insights.
  • Monitoreo de Registros: Monitorear regularmente los registros en busca de anomalías o actividades sospechosas para detectar potenciales exploits de manera temprana.
  • Copias de Seguridad Robusta: Mantener copias de seguridad regulares y robustas de la base de datos para recuperarse de posibles brechas, asegurando la integridad de los datos.
Descargar herramienta