漏洞深度分析|Pgadmin 命令执行漏洞

news2025/1/17 1:04:21

项目介绍

PostgreSQL是世界上第四大流行的开源数据库管理系统,它在各种规模的应用程序中得到了广泛的使用。而管理数据库的传统方法是使用命令行界面(CLI)工具。

PostgreSQL的图形化用户界面(GUI)工具则可以帮助用户对数据库实现更好的管理、操纵、以及可视化其数据。目前star数1.1k。

项目地址

https://www.pgadmin.org/

漏洞概述

pgadmin在验证pg_dump等工具路径的时候,由于没有对用户参数进行合理校验,在windows平台下存在命令执行漏洞。

影响版本

pgadmin 6.17

漏洞复现

Poc:

1)使用impacket提供的smbserver.py脚本构造恶意的smb服务

python3 smbserver.py -comment 'My share' TMP /tmp

 

2)编译恶意的exe文件并放到对应目录

3)登录pgadmin,执行命令

 

漏洞分析

最新版本的pgadmin 6.17存在命令执行漏洞,如下,subprocess.getoutput函数接收了full_path参数,而full_path可以通过用户指定

 

有几个点需要注意

  1. replace_binary_path

该函数从定义看仅仅替换了$DIR为当前目录,因此可以忽略影响

 

  1. os.path几个函数的处理

从下面代码可以看出full_path在不同平台下拼接的路径也不同,如果在windows下部署,

那么后缀会出现.exe。当windows使用smbv1协议时,可以使用UNC path指定攻击者的恶意文件从而执行任意命令。

 

注意,windows下恶意的exe文件必须是下面几个文件名之一

 

修复方式

暂不使用windows版本pgadmin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这些方法助你打好年终收官战

一、减少推文中的链接数量 研究表明,没有链接的推文更容易产生粉丝互动。所以你不必在每条推文中都包含链接。链接的精妙在于精而不在于杂。所以如果你限制包含链接的推文数量,你会发现你推文的粉丝参与度会增加。 少量的链接更有利于和粉丝建立信任&a…

【从零开始学习深度学习】27.卷积神经网络之VGG11模型介绍及其Pytorch实现【含完整代码】

目录1. VGG块介绍2. 构造VGG网络模型3. 获取Fashion-MNIST数据并用VGG-11训练模型4.总结AlexNet在LeNet的基础上增加了3个卷积层。但AlexNet对卷积窗口、输出通道数和构造顺序均做了大量的调整。虽然AlexNet模型表明深度卷积神经网络可以取得出色的结果,但并没有提供…

C++ Reference: Standard C++ Library reference: Containers: map: map: emplace

C官网参考链接&#xff1a;https://cplusplus.com/reference/map/map/emplace/ 公有成员函数 <map> std::map::emplace template <class... Args> pair<iterator,bool> emplace (Args&&... args);构造并插入元素 如果元素的键是唯一的&#xff0c;…

【沙拉查词】沙拉查词配置教程——如何实现截图OCR翻译、截图翻译?

一、问题背景 2022年12月16日&#xff0c;沙拉查词仍然没有截图翻译的功能。 这个功能&#xff0c;在百度翻译上虽然能够实现&#xff0c;但是要额外下一个软件和挂在后台&#xff0c;总是觉得麻烦。 二、解决方法 如果你是一个quicker软件使用者&#xff0c;那么通过添加「…

python中的字典详解

目录 一.思考 二.字典定义 注意 三.字典数据的获取 注意 字典的嵌套 四.字典常用操作 1.新增、更新元素 2.删除元素 3.清空字典 4.获取全部Key 5.利用Key遍历字典 五.字典总结 六.字典实例 一.思考 为什么需要字典? 生活中的字典我们可以根据【字】来找到对应的【含…

QT-Linux安装

1、在虚拟机Ubuntu的环境安装好之后&#xff0c;详细看&#xff1a; QT Linux环境搭建——VM虚拟机和Ubuntu的安装_sgmcy的博客-CSDN博客 下面就可以直接安装linux环境下的QT了 2、唯一要注意的一点是&#xff0c;之前安装虚拟机的时候&#xff0c;磁盘空间一定要大一点&…

第十四届蓝桥杯集训——JavaC组第十四篇——嵌套循环

第十四届蓝桥杯集训——JavaC组第十四篇——循环嵌套 目录 第十四届蓝桥杯集训——JavaC组第十四篇——循环嵌套 循环嵌套是逻辑程序中的方法 对应嵌套的循环复杂度 嵌套循环示例&#xff1a; 名词解析&#xff1a; 笛卡尔积 循序命名 循环嵌套是逻辑程序中的方法 循环嵌…

“无人区”行驶8年,李诞的脱口秀路在何方?

刚从《脱口秀大会5》的舞台上下来的李诞&#xff0c;给自己找了份“新工作”——脱口秀直播带货。 12月10日晚&#xff0c;李诞入淘。讲段子、玩梗手到擒来&#xff0c;李诞将自己风趣幽默的脱口秀风格沿用到了这场“来个彩诞”直播首秀中&#xff0c;给交个朋友贡献了超3200万…

5.单点登录(Vue2.x)

概况 百度百科 单点登录&#xff08;Single Sign On&#xff09;&#xff0c;简称为 SSO&#xff0c;是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中&#xff0c;用户只需要登录一次就可以访问所有相互信任的应用系统。 关键词 token、session、cooki…

Java基础之《netty(13)—任务队列taskQueue》

一、任务队列 1、用户程序自定义的普通任务 2、用户自定义定时任务 3、非当前Reactor线程调用Channel的各种方法 例如在推送系统的业务线程里面&#xff0c;根据用户的标识&#xff0c;找到对应的Channel引用&#xff0c;然后调用Write类方法向该用户推送消息&#xff0c;就…

基于java+springmvc+mybatis+vue+mysql的养老院管理系统

项目介绍 管理员后台页面&#xff1a; 功能&#xff1a;主页、个人中心、护工管理、家属管理、楼房资料管理、房间资料管理、床位管理、老人入住管理、老人档案管理、身体状态管理、用药情况管理、转房登记管理、外出登记管理、药品信息管理、药品入库管理、药品出库管理、物品…

【C语言】整型的存储方式(大小端,原码,反码,补码)

目录 一、基本类型 二、原码&#xff0c;反码&#xff0c;补码 2.1 原&#xff0c;反&#xff0c;补的计算方式 2.1.1 正数的原&#xff0c;反&#xff0c;补 2.1.2 负数的原&#xff0c;反&#xff0c;补 2.2 为什么要用补码存放 2.3 大小端是什么&#xff1f; 2.3.1 …

明道云联合契约锁共建人事场景电子签约解决方案

背景介绍 在每个组织的人事管理工作中&#xff0c;从招聘、入职、在职、调岗到离职&#xff0c;整个过程中存在大量的合同、证明、函件、通知等文件需要签字盖章。HR每天都要在“核对文件、敲章、通知员工签合同、催进度、给外地员工寄合同、关注合同到期时间等”繁琐的签署工…

使用vite和Element Plus,实现部署后不修改代码/打包,新增主题/皮肤包

Web前端界面切换主题/皮肤&#xff0c;是一个常见的需求。如果希望在打包部署后实现皮肤的修改甚至增加皮肤&#xff0c;不需要修改源码或者重新打包&#xff0c;类似于我们常见的皮肤包扩展&#xff0c;又该如何实现呢&#xff1f; 我使用类似上一期多语言包功能中介绍的方法来…

基于Xlinx的时序分析与约束(3)----基础概念(下)

1、4种基本的时序路径 下图是一张典型的FPGA与上游器件、下游器件通信的示意图&#xff1a; 其可以划分为4条基本的数据路径&#xff0c;这4条路径也是需要进行时序约束的最基本路径。 &#xff08;1&#xff09;寄存器到寄存器 路径2&#xff0c;FPGA内部的寄存器到另一个寄存…

[附源码]Node.js计算机毕业设计高校医疗健康服务系统的设计与实现Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

【C++初阶】类和对象(下)再谈构造函数、static成员、C++11的成员初始化新玩法、友元类、内部类

文章目录再谈构造函数static成员C11的成员初始化新玩法友元类内部类再谈构造函数 1.构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。 虽然上述构造函数调用之后&#xff0c;对象中已经有了一个初始值&am…

客户管理系统如何提升体验

数字化时代&#xff0c;客户与企业交互的触点爆炸式增长&#xff0c;客户体验正从单一触点走向端到端旅程。众多的产品、海量的数据&#xff0c;导致客户对体验的要求越来越多......CRM客户管理系统是企业提升客户体验的有效工具&#xff0c;它不仅可以帮助您进一步了解客户&am…

App自动化之dom结构和元素定位方式(包含滑动列表定位)

先来看几个名词和解释&#xff1a; dom: Document Object Model 文档对象模型dom应用: 最早应用于html和js的交互。界面的结构化描述&#xff0c; 常见的格式为html、xml。核心元素为节点和属性xpath: xml路径语言&#xff0c;用于xml 中的节点定位&#xff0c;XPath 可在 xml…

javaSE - 三个常用的接口(Comparable,Comparator,Cloneable)

1、Comparable 英 [ˈkɒmpərəbl] 美 [ˈkɑːmpərəbl] 可比较的;可比的;可比性;可比;可比较   2、Comparator 美 [kəmˈpɜrətər] n. 比较器&#xff0c;比色器&#xff0c;比较电路&#xff0c;比长仪&#xff0c;场强计 3、 Cloneable 可复制的 一、Comparable …