PL/pgSQL Password Bruteforce
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Trova ulteriori informazioni su questi attacchi nel documento originale.
PL/pgSQL è un linguaggio di programmazione completo che si estende oltre le capacità di SQL offrendo controllo procedurale avanzato. Questo include l'utilizzo di cicli e varie strutture di controllo. Le funzioni create nel linguaggio PL/pgSQL possono essere invocate da istruzioni SQL e trigger, ampliando l'ambito delle operazioni all'interno dell'ambiente del database.
Puoi abusare di questo linguaggio per chiedere a PostgreSQL di forzare le credenziali degli utenti, ma deve esistere nel database. Puoi verificarne l'esistenza utilizzando:
Per impostazione predefinita, creare funzioni è un privilegio concesso a PUBLIC, dove PUBLIC si riferisce a ogni utente su quel sistema di database. Per prevenire ciò, l'amministratore avrebbe dovuto revocare il privilegio di USAGE dal dominio PUBLIC:
In tal caso, la nostra query precedente restituirebbe risultati diversi:
Nota che per il seguente script per funzionare la funzione dblink
deve esistere. Se non esiste, puoi provare a crearla con
Ecco come puoi eseguire un attacco di brute force su una password di 4 caratteri:
Nota che anche forzare 4 caratteri potrebbe richiedere diversi minuti.
Puoi anche scaricare una wordlist e provare solo quelle password (attacco a dizionario):
Impara e pratica il hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)