Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
pgAdminOpendoor — 用于 CVE-2025-2945 的漏洞利用与测试台 | Kitploit
工具/GitHubGitHub/i3r1h0n/pgadminopendoor
漏洞分析代码分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHubi3r1h0n/pgadminopendoor

pgAdminOpendoor

用于 CVE-2025-2945 的漏洞利用与测试台

查看仓库
9个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

pgAdminOpendoor (CVE-2025-2945)

概述

这是我对 CVE-2025-2945 的研究。本仓库包含一个带有 PostgreSQL 和存在漏洞的 pgAdmin 的测试环境,以及漏洞利用程序。

CVE

有用链接:

  • NVD Details
  • WIZ Analyze
  • Metasploit

漏洞剖析

在由 Python 编写的 pgAdmin 后端中,有两个端点缺乏适当的清理(sanitization)。端点分别是:

  • /sqleditor/query_tool/download - query_commited 参数
  • /cloud/deploy - high_availability 参数

我们来看一下 sqleditor 的代码:

root@kitploit:~
for key, value in data.items():
    if key == 'query':
        sql = value
    if key == 'query_commited':
        query_commited = (
            eval(value) if isinstance(value, str) else value
        )

这里我们可以看到,query_commited 的值被直接传递给了 eval() 函数。你可以查看 eval 文档。

还可以看看 pgacloud 的代码:

root@kitploit:~
def _create_google_postgresql_instance(self, args):
    credentials = self._get_credentials(self._scopes)
    service = discovery.build('sqladmin', 'v1beta4',
                              credentials=credentials)
    high_availability = \
        'REGIONAL' if eval(args.high_availability) else 'ZONAL'

这里存在同样的问题。

要访问这些端点,仍然需要有效的凭证以及对 pgAdmin 的访问权限。但任何能够访问它的攻击者,都可以向 eval 传递任意值。这等同于执行任意 Python 单行命令。

漏洞利用

漏洞利用非常简单直接。请查看 exploit/src/main.py。别忘了更新配置以获取反弹 shell。

测试环境搭建

要搭建测试环境,请运行以下命令:

root@kitploit:~
cd stand
docker compose up -d

就这样。pgAdmin 现在可以通过 http://localhost:8080 访问。默认凭证为:

root@kitploit:~
[email protected]
admin

可以随意编辑 .env 文件和 stand/init-db/01-init.sql。


由 I3r1h0n 制作。

下载工具