`

postgresql基本语法

 
阅读更多
1.注释、结束标记、连接符

a.PostgreSQL既然遵循SQL语言,当然支持–注释;

b.PostgreSQL支持/*和/**/注释,这点类似于Mysql;

c.PostgreSQL数据库使用psql的时候,需要在命令后加上;(分号)或者是\g来表示语句已经结束以执行查询.

d.PostgreSQL是采用||符号来连接字符串的,注意使用^,小心|被转义。

2.自动匹配

PostgreSQL不像Mysql能够自动匹配字段,这点类似于oracle,所以在注入的时候要注意下,而且默认情况下是支持union查询的;

3.连接PostgreSQL

默认情况下是不给外连的,如果想远程管理PostgreSQL数据库的话,需要修改../PostgreSQL/data/pg_bha.conf文件, 请参考 PostgreSQL学习手册.PostgreSQL默认用户是postgres(类似于mysql的root),默认端口是5432,默认系统库是 postgres。

使用psql -h ip -d dataname -p port -U username,这里注意-U参数是大写,如果是本机采用默认安装的话,直接使用psql -U postgres后会提示输入密码,正确输入密码后会出现postgres=#的字符(类似于mysql中的mysql>),就可以正常使用 psql了。

\? 显示pgsql命令的说明

\h 显示sql命令的说明

\q 是退出

\l 是现实系统中所有的数据库

4.pgAdmin III

a.pgAdmin III是PostgreSQL中自带的界面化数据库管理程序,可以查询PostgreSQL数据库中所有域、函数、序列、数据表结构及相关属性、触发器函数、视图等。

注入PostgreSQL

既然PostgreSQL是RDBMS,所以系统中所有数据库的结构会保存系统库中,所以注入的时候就相对比较方便。由于注释方式和mysql是一样,如何判断是什么数据库?关于这点我也没有一个标准的答案,我想可以扫描5432端口(如何web和库没有分离的情况下),使用version()函数的返回结果来判断,直接使用查询语句如select * from pg_class/select * from pg_group的返回结果来判断数据库类型.由于PostgreSQL的目录页存在information_schema,我手上也没有 PostgreSQL数据库的注射点,所以我也不知道能不能使用select schema_name from information_schema_schemata来判断,不好意思,关于使用information_schema只是我的想法,有条件的朋友验证下。

介绍下PostgreSQL中内置函数、表和视图在入侵的应用。

current_database() 当前数据库名字

session_user 会话用户 |

current_user 目前执行环境中的用户名 |这三个函数调用时候不需要加()

user 和session_user一样 |

inet_client_port() 远程端口

cast(sourcetype AS targettype) 定义类型转换

current_setting() 以查询形式获取setting_name 设置的当前值

convert() 编码转换

pg_stat_user_tables 存放系统所有表名的视图,关键字段是relname,使用select relname from pg_stat_user_tables limit offset,1 来达到逐个读取表名的目的

pg_stat_all_tables 和pg_stat_all_tables视图功能一样

pg_shadow 看到shadow大家是否想到/etc/shadow,此表包含数据库用户的信息,关键字段username、passwd和usesuper(超级用户的意思),不过此表被做了权限设置

pg_user 这个表结构和pg_shadow一样,不过此表的全局可读,passwd字段可能被清空或者加密

pg_group 定义组以及哪些用户属于哪个组的信息,关键字段groname

information_schema.columns 这个目录对象中保存了所有的字段,关键字段是column_name,使用select column_name from information_columns where table_name=tablename limit offset,1这样就可以达到读取每个表名的字段

遍历PG当前数据库中的全部表

SELECT tablename FROM pg_tables
WHERE tablename NOT LIKE ‘pg%’
AND tablename NOT LIKE ‘sql_%’
ORDER BY tablename;

查询PG数据库中的所有表包括系统表

select relname as table_name from pg_class where relkind=’r';

这个类似mssql里的master
然后你用SELECT datname FROM pg_database 这个就可以看到所有的数据库了
然后你写入数据库 库名 用SELECT table_schema,table_name FROM information_schema.tables
这个查询表

读文件

首先需要建立一个表,然后copy文件内容到表中,在读取表内容,思路是这样的
create table read (line text);
copy read from ‘/etc/passwd’;alter table read add id serial–
select * from read;
drop table read;
思路就是这样的,具体怎么使用就看大家自己发挥了(encode,^_^)

分享到:
评论

相关推荐

    Postgresql基础语法汇总.zip_PostgreSQL基础语法汇总

    **PostgreSQL基础语法详解** PostgreSQL,简称PG,是一款开源的关系型数据库管理系统,以其强大的功能和高度的稳定性受到全球开发者的广泛青睐。本篇将基于PostgreSQL 10.1的说明手册,深入探讨其基础语法,包括...

    PostgreSQL常用语法收集.sql

    PostgreSQL常用语法收集,Postgresql 当中有四种方式获取当前时间。时间格式化,时间间隔计算等等

    PostgreSQL常用基本语法和几条简单技巧

    PostgreSQL常用基本语法和几条简单技巧,包含 字段自增长 数据库内文本类转数字等

    PostgreSQL实用实例参考

    一、PostgreSQL基本语法 PostgreSQL的SQL语法遵循标准SQL规范,但也包含许多特有的语法元素。例如,创建数据库的命令是`CREATE DATABASE`,而创建表则使用`CREATE TABLE`。在插入数据时,可以使用`INSERT INTO`语句...

    PostgreSQL 语法

    本篇将详细介绍 PostgreSQL 的基本语法以及一些常用命令。 首先,安装完 PostgreSQL 后,系统会自带一个名为 psql 的 SQL Shell 命令行工具。在不同的操作系统上,启动 psql 的方法不同: - 在 Linux 上,你可以...

    PostgreSQL_与_MS_SQLServer比较

    ### PostgreSQL与MS SQL ...综上所述,尽管 MS SQL Server 和 PostgreSQL 在很多基本概念上相似,但在具体的实现细节上存在显著差异。了解这些差异对于跨平台迁移项目或进行数据库设计时选择合适的技术栈至关重要。

    postgresql 教程 pdf 资料集合 .rar

    这本书可能是一个适合初学者的快速入门指南,它可能包含了PostgreSQL的基础概念,如安装、基本语法、数据类型、表的创建和管理,以及简单的查询操作。第二版通常会根据前一版的反馈进行改进和更新,提供更清晰易懂的...

    PostgreSQL Tutorial

    本教程为PostgreSQL的入门指南,旨在帮助新手学习者了解PostgreSQL的基础知识和基本操作。 首先,教程提到了PostgreSQL的历史沿革。PostgreSQL的前身是伯克利大学的POSTGRES项目,后来发展成为Postgres95,最终成为...

    postgresql 12、15离线安装包

    对于开发者和管理员来说,了解PostgreSQL的SQL语法、索引策略、性能调优、安全性设置以及备份和恢复机制都是非常重要的。PostgreSQL支持标准的SQL,但也有一些自己的扩展,比如窗口函数、递归查询和JSON支持。在实际...

    PostgreSQL_8.2.3.rar_postgresql_windows 8

    2. **SQL语言基础**:PostgreSQL遵循SQL标准,所以文档会教授基本的SQL语法,如创建数据库、表,插入、更新和删除数据,以及查询语句的使用。 3. **安全性与权限**:在8.2.3版本中,理解角色、用户管理和权限控制是...

    PostgreSQL语法、连接

    PostgreSQL是一种功能强大的...以上就是关于PostgreSQL的插入、查询、更新、删除数据的基本语法,以及排序、分组、条件查询和连接操作的详细说明。理解并熟练运用这些知识点,能帮助你有效地管理和操作数据库中的数据。

    DB2到GreenPlum/PostgreSQL的转换指南

    SQL谓词是SQL语句中用来筛选结果集的关键部分,DB2与GreenPlum/PostgreSQL之间在SQL谓词的语法和可用性上可能存在差异。 ##### 2.3.1 BETWEEN谓词 DB2和GreenPlum/PostgreSQL都支持BETWEEN谓词,但在处理边界值时...

    PostgreSQL12.2中文手册.chm.7z

    通过深入阅读和理解这份"PostgreSQL12.2中文手册",你不仅可以掌握PostgreSQL的基本操作,还能了解到高级特性及其应用,为你的数据库管理工作打下坚实基础。无论你是新手还是经验丰富的DBA,这份手册都将是你不可或...

    PostgreSQL博客1

    在深入探讨PostgreSQL之前,我们首先需要理解数据库的基本概念。PostgreSQL是一款开源的关系型数据库管理系统(RDBMS),以其强大的功能、高度的可扩展性和稳定性而受到广泛赞誉。它支持SQL标准,并提供丰富的数据...

    Mastering PostgreSQL 11 2nd.pdf

    首先,书中会涵盖PostgreSQL的基础知识,包括安装与配置过程、SQL语言的基本语法、表的设计和管理,以及数据类型和约束。了解这些基础知识是掌握任何数据库系统的关键,对于新手来说尤为重要。 其次,深入探讨了...

    postgresql 基本命令

    根据给定的文件信息,以下是对“PostgreSQL基本命令”的详细知识点总结: ### PostgreSQL启动与停止 PostgreSQL的启动和停止通常通过`pg_ctl`工具完成。在指定数据目录(`-D`)和日志文件(`-l`)的情况下,可以...

    PostgreSQL1

    【PostgreSQL1】是关于PostgreSQL数据库系统的详细...总之,PostgreSQL1是一个全面介绍PostgreSQL数据库系统的内容集合,涵盖了从基础安装到高级特性的广泛主题,对于学习和掌握这一强大的开源数据库系统非常有帮助。

    postgresql-11-A4.pdf

    教程部分涉及了PostgreSQL的安装、数据库架构基础、创建数据库、访问数据库等基础操作。 5. SQL语言介绍 这部分介绍了SQL语言的基础知识,包括SQL的概念、创建新表、向表中插入数据行、查询表、表与表之间的连接、...

    PostgresQL8.3中文文档

    PostgreSQL 8.3是PostgreSQL数据库管理系统的一个重要版本,它在之前的基础上引入了多项新特性和改进。这个中文文档为中文用户提供了全面的指南,帮助他们理解和掌握PostgreSQL 8.3的功能和操作。 ### 一、数据库...

    Postgresql编程教程(自学).docx_postgresql_

    本教程将带你深入理解PostgreSQL编程,帮助你掌握基本的SQL语法以及更高级的特性。 ### 1. PostgreSQL简介 PostgreSQL,通常简称为Postgres,是一个强大的、开源的关系数据库管理系统,支持多种操作系统,并提供...

Global site tag (gtag.js) - Google Analytics