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
pgAdminOpendoor — Plataforma de explotación y pruebas para CVE-2025-2945 | Kitploit
Herramientas/GitHubGitHub/i3r1h0n/pgadminopendoor
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubi3r1h0n/pgadminopendoor

pgAdminOpendoor

Plataforma de explotación y pruebas para CVE-2025-2945

Ver Repositorio
hace 9 mesesAú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

pgAdminOpendoor (CVE-2025-2945)

Resumen

Esta es mi investigación sobre CVE-2025-2945. Este repositorio incluye un entorno de prueba con PostgreSQL y pgAdmin vulnerable, y el exploit.

CVE

Enlaces útiles:

  • Detalles NVD
  • Análisis WIZ
  • Metasploit

Desglose

En el backend de pgAdmin, que está escrito en Python, hay dos endpoints que carecen de una sanitización adecuada. Los endpoints son:

  • /sqleditor/query_tool/download - parámetro query_commited
  • /cloud/deploy - parámetro high_availability

Veamos el código de sqleditor:

root@kitploit:~
for key, value in data.items():
    if key == 'query':
        sql = value
    if key == 'query_commited':
        query_commited = (
            eval(value) if isinstance(value, str) else value
        )

Lo que vemos aquí es que el valor de query_commited se pasa directamente a la función eval(). Puedes consultar la documentación de eval.

También observa el código de pgacloud:

root@kitploit:~
def _create_google_postgresql_instance(self, args):
    credentials = self._get_credentials(self._scopes)
    service = discovery.build('sqladmin', 'v1beta4',
                              credentials=credentials)
    high_availability = \
        'REGIONAL' if eval(args.high_availability) else 'ZONAL'

Mismo problema aquí.

Aún se requieren credenciales válidas y acceso a pgAdmin para alcanzar estos endpoints. Pero cualquier atacante que pueda acceder a ellos también puede pasar cualquier valor a eval. Esto equivale a ejecutar cualquier oneliner de Python.

Explotación

La explotación es bastante directa. Consulta exploit/src/main.py. No olvides actualizar la configuración para obtener una shell inversa.

Configuración del Entorno

Para configurar el entorno, ejecuta esto:

root@kitploit:~
cd stand
docker compose up -d

Y eso es todo. Ahora pgAdmin está accesible en http://localhost:8080. Las credenciales por defecto son:

root@kitploit:~
[email protected]
admin

Siéntete libre de editar el archivo .env y stand/init-db/01-init.sql.


prod por I3r1h0n.

Descargar herramienta