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)
Encuentra más información sobre este ataque en el documento original.
PL/pgSQL es un lenguaje de programación completamente funcional que se extiende más allá de las capacidades de SQL al ofrecer control procedural mejorado. Esto incluye la utilización de bucles y varias estructuras de control. Las funciones creadas en el lenguaje PL/pgSQL pueden ser invocadas por declaraciones SQL y triggers, ampliando el alcance de las operaciones dentro del entorno de la base de datos.
Puedes abusar de este lenguaje para pedir a PostgreSQL que fuerce las credenciales de los usuarios, pero debe existir en la base de datos. Puedes verificar su existencia usando:
Por defecto, crear funciones es un privilegio otorgado a PUBLIC, donde PUBLIC se refiere a cada usuario en ese sistema de base de datos. Para prevenir esto, el administrador podría haber tenido que revocar el privilegio de USAGE del dominio PUBLIC:
En ese caso, nuestra consulta anterior produciría resultados diferentes:
Nota que para que el siguiente script funcione la función dblink
necesita existir. Si no existe, podrías intentar crearla con
Aquí se muestra cómo podrías realizar una fuerza bruta de contraseña de 4 caracteres:
Note que incluso forzar 4 caracteres puede tardar varios minutos.
También podrías descargar una lista de palabras y probar solo esas contraseñas (ataque de diccionario):
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)