Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pgAdminOpendoor — Stand di test ed exploit per CVE-2025-2945 | Kitploit
Strumenti/GitHubGitHub/i3r1h0n/pgadminopendoor
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubi3r1h0n/pgadminopendoor

pgAdminOpendoor

Stand di test ed exploit per CVE-2025-2945

Vedi Repository
9 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

pgAdminOpendoor (CVE-2025-2945)

Panoramica

Questa è la mia ricerca su CVE-2025-2945. Questa repository include un ambiente di test con postgress e pgadmin vulnerabile, e l'exploit.

CVE

Link utili:

  • Dettagli NVD
  • Analisi WIZ
  • Metasploit

Analisi

Nel backend di pgAdmin, che è scritto in Python, ci sono due endpoint privi di una corretta sanitizzazione. Gli endpoint sono:

  • /sqleditor/query_tool/download - parametro query_commited
  • /cloud/deploy - parametro high_availability

Diamo un'occhiata al codice di 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
        )

Quello che vediamo qui è che il valore di query_commited viene passato direttamente alla funzione eval(). Puoi consultare la documentazione di eval.

Vedi anche il codice di 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'

Stesso problema qui.

Servono comunque credenziali valide e accesso a pgadmin per raggiungere questi endpoint. Ma qualsiasi attaccante in grado di accedervi può anche passare qualsiasi valore a eval. Ciò equivale a eseguire qualsiasi one-liner Python.

Sfruttamento

Lo sfruttamento è abbastanza diretto. Vedi exploit/src/main.py. Non dimenticare di aggiornare la configurazione per ottenere una reverse shell.

Configurazione dell'ambiente di test

Per configurare l'ambiente esegui:

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

Ed è tutto. pgAdmin è ora accessibile all'indirizzo http://localhost:8080. Le credenziali predefinite sono:

root@kitploit:~
[email protected]
admin

Sentiti libero di modificare il file .env e stand/init-db/01-init.sql.


prodotto da I3r1h0n.

Scarica lo strumento