CVE-2025-60798phpPgAdmin 7.13.0及更早版本中存在一处严重的SQL注入漏洞,攻击者可利用该漏洞在服务器上执行任意SQL语句,从而完全控制底层PostgreSQL数据库。该漏洞位于display.php文件的第396行,应用程序直接将用户通过$_REQUEST['query']参数提交的输入传递给browseQuery函数,未进行任何输入验证或参数化查询处理。由于phpPgAdmin是管理PostgreSQL数据库的Web界面工具,攻击成功后可能导致数据库中的敏感数据泄露、数据库被篡改或删除,甚至可能通过数据库的系统命令执行功能实现服务器远程代码执行。该漏洞要求攻击者具有phpPgAdmin的低权限账户认证,但对具有数据库管理需求的用户来说,利用难度较低,危害性极大。
该SQL注入漏洞的根本原因在于phpPgAdmin的display.php文件对用户输入缺乏安全处理。在第396行附近,代码直接使用$_REQUEST['query']参数构建SQL查询语句,攻击者可以通过构造特殊的SQL片段来绕过前端过滤并注入恶意SQL代码。攻击者需要先登录phpPgAdmin获取有效的会话认证,然后通过修改query参数值,注入UNION SELECT、布尔盲注或时间盲注等SQL注入技术。例如,攻击者可以使用UNION语句从其他表中提取敏感信息如用户密码哈希,或使用COPY命令将数据库内容写入可访问的Web目录。由于phpPgAdmin通常以数据库管理员权限运行,攻击者甚至可以执行DROP DATABASE等破坏性操作。建议的修复方案是使用参数化查询或预编译语句替代字符串拼接,并对所有用户输入进行严格的输入验证和过滤。