RCE with PostgreSQL Languages
PostgreSQL 语言
您访问的 PostgreSQL 数据库可能安装了不同的脚本语言,您可以滥用这些语言来执行任意代码。
您可以使它们运行:
\dL *
SELECT lanname,lanpltrusted,lanacl FROM pg_language;大多数您可以在PostgreSQL中安装的脚本语言都有2种类型:受信任和不受信任。不受信任的语言名称以"u"结尾,这些版本允许您执行代码并使用其他有趣的功能。以下是一些安装后会很有趣的语言:
plpythonu
plpython3u
plperlu
pljavaU
plrubyu
...(任何其他使用不安全版本的编程语言)
如果您发现一个有趣的语言已经被PostgreSQL 安装但被标记为不受信任(lanpltrusted为false),您可以尝试使用以下命令信任它,这样PostgreSQL就不会施加任何限制:
如果您找不到一种语言,您可以尝试使用以下方式加载它(您需要是超级管理员):
请注意,将安全版本编译为“不安全”是可能的。例如,可以查看此链接。因此,即使只发现安装了受信任的版本,尝试执行代码也是值得的。
plpythonu/plpython3u
pgSQL
检查以下页面:
PL/pgSQL Password BruteforceC
检查以下页面:
RCE with PostgreSQL Extensions最后更新于