RCE with PostgreSQL Languages
Linguagens PostgreSQL
O banco de dados PostgreSQL ao qual você teve acesso pode ter diferentes linguagens de script instaladas que você poderia abusar para executar código arbitrário.
Você pode fazer com que elas funcionem:
A maioria das linguagens de script que você pode instalar no PostgreSQL tem 2 sabores: o confiável e o não confiável. O não confiável terá um nome terminado em "u" e será a versão que permitirá que você execute código e use outras funções interessantes. Essas são linguagens que, se instaladas, são interessantes:
plpythonu
plpython3u
plperlu
pljavaU
plrubyu
... (qualquer outra linguagem de programação usando uma versão insegura)
Se você descobrir que uma linguagem interessante está instalada mas não confiável pelo PostgreSQL (lanpltrusted
é false
), você pode tentar confiá-la com a seguinte linha para que nenhuma restrição seja aplicada pelo PostgreSQL:
Se você não vê uma linguagem, pode tentar carregá-la com (você precisa ser superadmin):
Observe que é possível compilar as versões seguras como "inseguras". Confira isso como exemplo. Portanto, sempre vale a pena tentar se você pode executar código, mesmo que você encontre apenas a versão confiável instalada.
plpythonu/plpython3u
pgSQL
Verifique a seguinte página:
PL/pgSQL Password BruteforceC
Verifique a seguinte página:
RCE with PostgreSQL ExtensionsLast updated