RCE with PostgreSQL Languages
Linguagens do PostgreSQL
O banco de dados PostgreSQL ao qual você obteve acesso pode ter diferentes linguagens de script instaladas que você pode abusar para executar código arbitrário.
Você pode fazê-las funcionar:
A maioria das linguagens de script que você pode instalar no PostgreSQL tem 2 variantes: a confiável e a não confiável. A 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. Estas 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 não visualizar um idioma, você pode tentar carregá-lo com (você precisa ser superadmin):
Note que é possível compilar as versões seguras como "inseguras". Verifique este por exemplo. Portanto, sempre vale a pena tentar se você pode executar código mesmo que encontre instalado apenas o confiável.
plpythonu/plpython3u
pgSQL
Verifique a seguinte página:
pagePL/pgSQL Password BruteforceC
Verifique a seguinte página:
pageRCE with PostgreSQL ExtensionsLast updated